java校招基础补全(二)

Array和ArrayList的区别
Array:最高效;但是其容量固定且无法动态改变;
ArrayList: 容量可动态增长;但牺牲效率;
基于效率和类型检验,应尽可能使用Array,无法确定数组大小时才使用ArrayList!
不过当你试着解决更一般化的问题时,Array的功能就可能过于受限。

Array的用法和c/c++的数组没有多大区别,ArrayList的用法如下:
ArrayList<数据类型> 数组名称 = new ArrayList<>();
ArrayList,尖括号代表泛型,泛型只能是引用类型不能是基本类型;
ArrayList想要存储基本类型数据,需要使用基本类型对应的包装类如下:
byte -> Byte
short -> Short
int -> Integer
long -> Long
float -> Float
double -> Double
char -> Character
boolean -> Boolean
a=a+b与a+=b有什么区别吗?
+= 操作符会进行隐式自动类型转换,此处a+=b隐式的将加操作的结果类型强制转换为持有结果的类型, 而a=a+b则不会自动进行类型转换.
final、finalize、finally
final为关键字;

final为用于标识常量的关键字,final标识的关键字存储在常量池中

finalize()为方法;

finalize()方法在Object中进行了定义,用于在对象“消失”时,由JVM进行调用用于对对象进行垃圾回收,类似于C++中的析构函数;用户自定义时,用于释放对象占用的资源(比如进行I/0操作);

finally为区块标志,用于try语句中;
finally{}用于标识代码块,与try{}进行配合,不论try中的代码执行完或没有执行完(这里指有异常),该代码块之中的程序必定会进行;
java反射
java一般通过new创建对象,也可以通过java的放射创建对象,有4种实现方式

1)Class.forName(“类的路径”);
2)类名.class
3)对象名.getClass()
4)基本类型的包装类,可以调用包装类的Type属性来获得该包装类的Class对象

jdbc加载mysql驱动的时候就是使用反射机制来实现Class.forName(‘com.mysql.jdbc.Driver.class’);

类加载后,可以实现java反射的类有以下4种

1)Class:表示正在运行的Java应用程序中的类和接口
注意: 所有获取对象的信息都需要Class类来实现。
2)Field:提供有关类和接口的属性信息,以及对它的动态访问权限。
3)Constructor:提供关于类的单个构造方法的信息以及它的访问权限
4)Method:提供类或接口中某个方法的信息

可以利用Class 对象的 newInstance()或者调用 Constructor 对象的 newInstance()来进行反射动态创建对象实例
关于反射类的知识详情移步[(https://blog.csdn.net/sinat_38259539/article/details/71799078?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163163163816780274189712%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=163163163816780274189712&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-71799078.pc_search_insert_download&utm_term=java%E5%8F%8D%E5%B0%84&spm=1018.2226.3001.4187)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值