会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 133728个问题
JAVA 全系列/第一阶段:AI驱动的JAVA编程/数组和数据存储 3511楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/飞机大战小项目训练 3512楼

老师,我测试static关键字时,使用了下面的代码,再TestStatic类中创建构造方法时必须和类名相同,比如我是用User方法名会报错,但在main方法中写了这行代码,是不是意味着系统自动建立了一个没有参数的User构造方法,这样构造方法名与类名不同,为什么没有报错。

User u1 = new User();//????
/**
 * 测试static关键字
 */
public class TestStatic {

    int id;
    String name;
    String pwd;
    static String company = "北京尚学堂";
    /*public void user (int id,String name){ //非构造方法必须有返回值类型(即使是void),
    实例方法方法名也可以与类名相同,但是习惯上我们为实例方法命名的时候通常是小写的,//
        this.id =id;

    }*/

    public TestStatic (int id,String name){  //构造方法与类名相同,其实构造方法的返回类型是void,只不过不能写出来而已
        this.id =id;
        this.name = name;
    }
    public void login(){
        System.out.println("登录名:"+name);
    }
    public static void printCompany(){
        //login();调用非静态成员,编译器就会报错
        // Non-static method 'login()' cannot be referenced from a static context
        System.out.println(company);
    }

    public static void main(String[] args) {
       TestStatic u = new TestStatic(101,"wwq");
       User u1 = new User();//????
       TestStatic.printCompany();
       TestStatic.company = "北京阿里爷爷";
       TestStatic.printCompany();
    }

}


JAVA 全系列/第一阶段:AI驱动的JAVA编程/面向对象详解和JVM底层内存分析 3513楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/JAVA入门和背景知识 3515楼

package com.itbaizhan;

import java.util.Arrays;

//测试二分法查找
public class TestBinarySearch {
    public static void main(String[] args) {
        int[ ] arr = { 30,20,50,10,80,9,7,12,100,40,8};//定义一个数组
        int searchWord = -20;    //所要查找的数(元素)
        Arrays.sort(arr);       //二分法查找前,一定要对数组进行排序
        System.out.println(Arrays.toString(arr));

        System.out.println(searchWord+"元素的索引: "+binarySearch(arr,searchWord));

    }
    public static int binarySearch(int[] array,int value){
        int low = 0;    //定义数组的第一个位置
        int high = array.length -1; //数组的长度减去low(low占一个位置)
        while (low <= high){        //从小到大进行排序
            int middle = (low+high)/2;  //取一个中间数mid
            if(value==array[middle]){  //如果查找值等于mid位置的值,返回mid(等于查找值的位置)的位置
                return middle;
            }
            if (value>array[middle]){
                low = middle+1;
            }
            if (value<array[middle]) {
                low = middle-1;
            }
        }
            return  -1;
    }
}

老师我这个代码写出来,当我把数改为数组里面没有的数值,run的时候却没有返回-1.我的代码和视频里面的一样

JAVA 全系列/第一阶段:AI驱动的JAVA编程/数组和数据存储 3518楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/面向对象详解和JVM底层内存分析 3519楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/面向对象详解和JVM底层内存分析 3520楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/JAVA入门和背景知识 3521楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/控制语句、方法、递归算法 3523楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/面向对象详解和JVM底层内存分析 3525楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637