java基础
-
如果finally块中有return语句的话,它将覆盖掉函数中其他return语句。
-
Java中的四类八种基本数据类型 第一类:整数类型 byte short int long 第二类:浮点型 float double 第三类:逻辑型 boolean(它只有两个值可取true false) 第四类:字符型 char
-
以前我是堆,你是栈 你总是能精准的找到我,给我指明出路 后来有一天我明白了 我变成了栈,你却隐身堆海 我却找不到你了,空指针了 我不愿意如此,在下一轮full gc前 我找到了object家的finalize 又找到了你,这次我不会放手 在世界重启前,一边躲着full gc一边老去
-
父类静态代码块 ->子类静态代码块 ->父类非静态代码块 -> 父类构造函数 -> 子类非静态代码块 -> 子类构造函数。
-
用new关键字创建字符串对象时,JVM会先检查字符串常量池中时候有存在的对应字符串,如果已经存在,则不会在字符串常量池中创建,如果没有存在,那么就会在字符串常量池中创建一个字符串对象,然后还会去堆内存中创建一份字符串对象,把常量池中的对象内容拷贝到内存中的字符串对象,然后返回堆内存中的字符串对象内存地址。
-
Java三大注解分别是@Override @Deprecated @Suppresswarnings 2.@Override 注解表名子类中覆盖了超类中的某个方法,如果写错了覆盖形式,编译器会报错 3.@Deprecated 表明不希望别人在以后使用这个类,方法,变量等等 4.@Suppresswarnings 达到抑制编译器产生警告的目的,但是不建议使用,因为后期编码人员看不懂编译器提示的警告,不能更好的选择更好的类去完成任务
-
Arraylist默认数组大小是10,扩容后的大小是扩容前的1.5倍,最大值小于Integer 的最大值减8,如果新创建的集合有带初始值,默认就是传入的大小,也就不会扩容
-
HashTable是线程安全的 Vector是线程安全的ArrayList TreeSet和LinkedList都不是线程安全的
-
重载:函数方法名必须相同,看参数列表即可,无关返回值。
-
B选项,在java中线程是有分优先等级的所以优先级不能相同,错误 C选项,Thread实现了Runnable接口是一个类不是接口,错误 D选项,实现多线程的三种方式,一种是继承Thread类使用此方式就不能继承其他的类了。还有两种是实现Runnable接口或者实现Callable接口 ,所以D错误。
-
Object 是基类 Java中的所有的类都直接或间接的继承;所以A对
-
length得到的是字符,不是字节。
-
线程的启动方式只能通过start这种方式启动才能真正的实现多线程的效果,如果是手动调用run方法和普通方法调用没有区别,所以这个还是按照顺序执行首先执行run方法之后,执行输出语句所以最终得到结果foobar
-
引用类型判断时,==判断的是地址是否相等。如果用常量字符串来定义的(如s1,s2,s4)会存在常量池里面;用变量定义的就不会(如s3,s5)
-
ntValue()是把Integer对象类型变成int的基础数据类型; parseInt()是把String 变成int的基础数据类型
-
当你创建一个新的实例对象时,它会得到一块新的内存空间。但是类中的静态成员变量是所有对象共有的,也就是在一片属于类的存储空间中,被所有对象共有。
-
a、b、c三个变量是定义在方法中的局部变量,使用前必须初始化
-
操作字符串的类有:String、StringBuffer、StringBuilder。 String 和 StringBuffer、StringBuilder 的区别在于 String 声明的是不可变的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象,而 StringBuffer、StringBuilder 可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用 String。 StringBuffer 和 StringBuilder 最大的区别在于,StringBuffer 是线程安全的,而 StringBuilder 是非线程安全的,但 StringBuilder 的性能却高于 StringBuffer,所以在单线程环境下推荐使用 StringBuilder,多线程环境下推荐使用 StringBuffer。
-
String 类的常用方法都有那些? indexOf():返回指定字符的索引。 charAt():返回指定索引处的字符。 replace():字符串替换。 trim():去除字符串两端空白。 split():分割字符串,返回一个分割后的字符串数组。 getBytes():返回字符串的 byte 类型数组。 length():返回字符串长度。 toLowerCase():将字符串转成小写字母。 toUpperCase():将字符串转成大写字符。 substring():截取字符串。 equals():字符串比较。
-
. 接口和抽象类有什么区别? 实现:抽象类的子类使用 extends 来继承;接口必须使用 implements 来实现接口。 构造函数:抽象类可以有构造函数;接口不能有。 main 方法:抽象类可以有 main 方法,并且我们能运行它;接口不能有 main 方法。 实现数量:类可以实现很多个接口;但是只能继承一个抽象类。 访问修饰符:接口中的方法默认使用 public 修饰;抽象类中的方法可以是任意访问修饰符。
-
iles的常用方法都有哪些? Files.exists():检测文件路径是否存在。 Files.createFile():创建文件。 Files.createDirectory():创建文件夹。 Files.delete():删除一个文件或目录。 Files.copy():复制文件。 Files.move():移动文件。 Files.size():查看文件个数。 Files.read():读取文件。 Files.write():写入文件。

查看13道真题和解析