一 、integer与int的直接区别
int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况,例如,要想表达出没有参加考试和考试成绩为0的区别
具体可见:
这里
https://blog.csdn.net/qq_36411874/article/details/78201687
二、java的八大基本数据类型
boolean,char,byte,short,int,long,float,double
三、对与Arraylist与hashmap可以浏览下这篇博客:
点击这里
https://blog.csdn.net/sinat_33921105/article/details/103847137?utm_source=app
四、关于堆和栈的讲解,可以看这篇
点击
我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《关于堆栈》, 一起来围观吧 https://blog.csdn.net/qq_41885871/article/details/100562192?utm_source=app
五、java从键盘上获取数值以及获取各个数据类型的方法
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
double d = sc.nextDouble();
String str = sc.next();
char c = sc.next().charAt(0);
六、if(isflag)等同于什么
If(isflag)等价于if(isflag==true)
七、subString用法
在String中提供了两个sunstring()方法。从指定位置截取到字符串结尾
str1.subString(6)
从第7个位置开始截取
截取指定范围的内容
str1.subString(1,4)
从第1个位置开始截取,第4个位置停止截取,结果不包括第4个位置的内容,只有3个字符。
八、小tips
使用equals比较时,常量放在前面。不然容易引起空指针异常
九、try catch finally基本说明
try语句块中是可能出现异常的代码,在一个异常处理中是只出现一次的
finally语句块是指异常处理完后必须要执行的部分,这部分不是必须的,可以不写 。
throws用法:在方法头部分使用throws来声明这个方法可能回避的异常,当有异常抛出时会中断该方法,而异常被抛到这个方法的调用者那里,由调用者来处理这个异常。
catch语句块是用来捕获异常的,可以捕获各种不同的异常,因此是可以还有多个catch块的,每个块用于捕获不同的异常,来进行不同的处理。
10、final关键字修饰
抽象类:子类继承重写 。接口类也一样
final:不允许重写
所以final关键字不能修饰抽象类与接口类
11、问你IS-A是什么关系
其实就是继承的意思
继承与接口
继承是一个是不是的关系,接口是能不能的关系
12丶线性数据结构和非线性数据结构
13丶进程与线程
进程是拥有资源的基本单位。
线程作为调度和分配的基本单位
14、Arrays.sort与Collections.sort()区别
Array.sort针对的是数组,Collections.sort针对的是集合。
可以进这篇博文详细观看
15丶JAVA!大小写转换
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
char c = input.next().charAt(0);
change(c);
}
private static void change(char c) {
//如果输入的是大写,+32即可得到小写
if(c>='A' && c<='Z'){
c+=32;
System.out.println(c);
}else if(c>='a' && c<='z'){ //如果输入的是小写,-32即可得大小写
c-=32;
System.out.println(c);
}
}
}
16丶instanceof
是Java的一个保留关键字,左边是对象,右边是类,返回类型是Boolean类型。它的具体作用是测试左边的对象是否是右边类或者该类的子类创建的实例对象,是,则返回true,否则返回false。
17丶LinkedList的addfirst与addlast方法
addFirst是加在队头,后进先出,和栈类似。addLast是加在队尾,先进先出,和队列类似。
19丶euqals与hashcode
- 没重写之前,equals比较的俩对象相等,hashcode必定相等:
- 没重写之前,两对象hashcode相等,equals比较不一定相等。
- 重写equals必须重写hashcode方法。
- 一般都是先使用hashcode先校验,相同再调用equals方法去对比,提高效率。
- 详情可以点击这个博主博客
20丶hashmap和hashtable区别(粗略,后续可参照再看别的博客)
21丶迭代器iterator可以用来遍历栈(可以保证栈中数据不变),map,其他的暂时不清楚
22丶抽象类与接口类
当功能内部一部分实现是确定的,一部分实现是不确定的。这时可以
把不确定的部分暴露出去,让子类去实现。
接口和类是并列关系,或者可以理解为一种特殊的类。从本质上讲,
接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义
(JDK7.0及之前),而没有变量和方法的实现。
(jdk8.0后可以有静态方法实现)在接口中定义的静态方法,不是抽象的,具体实现的,可以直接使用接口名称调用。
23丶反射
反射让开发人员可以通过外部类的全路径名创建对象,并使用这些类,实现一些扩展的功能;
反射让开发人员可以枚举出类的全部成员,包括构造函数、属性、方法。以帮助开发者写出正确的代码;
测试时可以利用反射 API访问类的私有成员,以保证测试代码覆盖率。