java基础随手杂记

1.java native关键字:A native method is a Java method whose implementation is provided by non-java code.
  native修饰的方法,不在当前文件中实现,而是在由其他语言(例如C,C++)的文件中实现的。

2.equals方法

public boolean equals(Object obj){
       return (this==obj);
}

即:只要两个对象不指向同一个对象,就返回false。

对于java的八个基本数据类型(例如int,short)和String类(已重写了equals()方法),默认比较的是值。

以下是关于hashcode的一些规定:

两个对象相等,hashcode一定相等

两个对象不等,hashcode不一定不等

hashcode相等,两个对象不一定相等

hashcode不等,两个对象一定不等

3.Collection和Collections的区别

Collection是集合框架的顶级接口,List接口,Set接口,实现了Collection接口。

Map是集合的另一个根接口,

Collections是提供集合操作的静态方法组合,不能被实例化,就像一个工具类,服务于java的Collection框架。

例如:Collections.sort(List<T> list)

 图片转载https://www.cnblogs.com/Kunrong/p/8590673.html

è¿éåå¾çæè¿°

è¿éåå¾çæè¿°

 

4.StringBuffer和StringBuilder

StringBuffer和StringBuilder都是字符变量,常用方法append(),和insert()方法

StringBuffer实现了线程安全,(synchronized),StringBuilder实现了StringBuffer的所有方法,非线程安全,

一般情况下,推荐使用StringBuilder类,因为它更快。

5.泛型(以下全是照抄菜鸟)

允许程序员编译时输入非法的参数类型

书写方式:一对尖括号扩起来,例如:<T>

泛型方法:写在返回类型前面的位置,例如:

public static <T> void(T t){};

泛型类:

public Generics<T>{private T t;};

5.类加载

虚拟机把class文件加载到内存里面,然后对数据进行准备,验证,解析。初始化,最终是可以被虚拟机直接使用的java类型。

另外:了解下类的生命周期:加载,链接(准备,验证,解析),初始化,使用,卸载

java类加载 是因为在运行时当它需要引用某个类的时候,会先去加载这个类,就是去读这个class文件到内存里面来,现在还没有创建这个类的实例,
你可以理解为 你写的java代码在编译成class文件后,并没有去执行,或者去引用他,只有程序运行时它将要使用这个类的时候才会去读取这个class文件,这时候叫做类加载,当缓存了这个类文件之后,后面的创建类的时候都会去引用它,因为类加载是运行是加载,所以java代码在运行时是有办法修改的,同样java类加载也允许加载一个远程的class文件,也代表它是支持程序不停止时更新程序代码的。(转自:https://zhidao.baidu.com/question/1836140087436072900.html

Class.forClass()有两个重载函数,可以决定返回的对象是否初始化,一般使用Class.forClass(String str) 会初始化(即在类的生命周期的初始化阶段了)。ClassLoader在加载阶段(应该是吧)

 

6静态变量,静态方法,静态代码详解

https://www.cnblogs.com/lubocsu/p/5099558.html(说的不错)

7java类,成员初始化顺序

https://blog.csdn.net/qq_27093465/article/details/70292221

8反射

接口java.lang.reflect

(常用的)四个类:Constructor,Method,Field,Proxy(动态代理)

Class clazz=Class.forName(String str);
//Object obj=clazz.newInstance();

Method[] methods=clazz.getMethods();
for(Method method:methods){
System.out.print(" "+method.getName());
}

9 ==和equals的区别

==是比较运算符,对于基本数据类型而言,比较的是值;对于引用类型而言,比较的是否为同一对象,即对象的地址是否相同。

equals是Object的一种方法,默认情况下,返回的是==的结果,可以对该方法进行重写。例如在java中 String,Integer,Long等对象都对equals进行了重写。

 

10.java volatile关键字   from https://www.cnblogs.com/zhengbin/articles/5654805.html

java内存模型的三个概念:可见性,原子性,有序性

 

11.多线程多线程访问冲突的解决方式

https://www.cnblogs.com/0820LL/p/9633787.html

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值