(面试)自己用的Java学习笔记

Java中的char注意事项:

char占2个字节,当java中采用GB2312或GBK编码方式时,一个中文占2个字节,因此char xxx='中'没有问题。

ArrayList扩容注意事项:

ArrayList默认数组大小是10,每次扩容大小是扩容前的1.5倍,如果初始化时指定数组的大小,就不会扩容。

例:ArrayList list = new ArrayList(20)扩容次数为0。

使用枚举Enum注意事项:

枚举类里面的成员变量就是该类的对象,调用方式就是类.对象(默认返回对象的字符串名),有几个实例,在第一次调用枚举类时就会调用几次构造方法。

字节流字符流注意事项:

以stream结尾的都是字节流,以reader和writer结尾的都是字符流,只进行读写,一般用字节流,需要对内容进行操作的使用字符流

==比较包装类的注意事项:

有一个值是基本类型则比较数值,都是包装类比较的是地址。Integer类型的参数,当数值在-128~127之间时,使用的是常量池,此时只要数值相等,==比较的结果为true(注意:new关键字一定会生成一个新的对象)

派生类初始化时注意事项:

初始化顺序:父类静态域=》子类静态域=》父类非静态域=》父类构造方法=》子类非静态域=》子类构造方法

其中:静态域(静态变量、静态代码块),非静态域(成员变量、构造块)不分先后,顺序执行

多线程中那些方法会释放/不释放锁资源:

sleep():当前线程进入睡眠,不释放锁。

yield():当前线程重新回到可执行状态,等待cpu调度,不释放锁。(有可能会立刻获得cpu调度)

wait():当前线程回到线程池等待,释放锁,当其他线程使用notify、notifyAll唤醒时进入可执行状态。

join():当前线程调用  某线程.join()时,当前线程进入等待某线程执行完毕再结束,底层调用wait,释放锁。

String类型的变量作为参数传入方法中被改变时:

因为String是final修饰的,是不可变的,因此,在方法中即使改变了String变量的值,实际是重新创建了一个String变量,原变量的值不变。

Java中值传递和引用传递的注意事项:

Java有两种传递方式,即值传递和引用传递。基本类型和String str = "xxx"这种方式创建的字符串都是值传递,对象,数组等都是引用传递。

序列化注意事项:

序列化能将数据长久的保存在磁盘中,类实现序列化需要实现Serializable接口,而类中如果有变量不想被序列化,则需要使用transient进行修饰。

关于>>和>>>运算符:

>>带符号位向右移动,正数左侧补0,负数左侧补1。>>>不带符号位向右移动,左侧全部补0。

顺带说一句:负数的二进制数等于正数的二进制数取反(反码)+1

Object类的注意事项:

Java中一切都是对象,Object是所有类的根类。

关于子类继承父类事项:

子类从其父类继承所有成员(字段、方法和嵌套类)。构造方法不是成员,所以不被子类继承,但是可以从子类调用父类的构造函数。

json转list极其简单的方法:

使用alibaba的fastjson:JsonArray.parseArray("要进行转换的json字符串","接收的实体类.class");

例:List<xxx> list = JsonArray.parseArray("jsonString",xxx.class)

需要引入包(maven):

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.68</version>
</dependency>

 

EasyPoi使用

使用实体类或者Map接收excel中的内容,需要先对应表头再对应每一列的内容,可以自定义校验方法,校验方法会根据实体类或者Map接收到的数据进行逐条校验

静态变量

所有实例访问的都是同一个变量

PageHelp分页中使用Order By的问题

当sql语句过于复杂时,分页器解析sql时可能会出现解析失败的情况,具体表现形式就是直接将order by语句拼接在sql语句之后,然后在外层起别名,(起别名的操作是PageHelper自带的操作),此时就会造成在 “子查询中使用order by的错误”

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值