开发必备小知识

1. Git代码无法上传的解决办法

git pull origin ipaas_config
git pull
git push --force origin ipaas_config

2.本地springboot项目启动,端口被占用的解决办法:

taskkill /im java.exe /f

3.sql里的inner join和=等号有区别
join是基于hashtable连接比较,而=直接就是取笛卡尔集再过滤,所以后者效率低,是O(N^2),前者是O(LogN)

4.transient 关键字总结
1)transient修饰的变量不能被序列化;

2)transient只作用于实现 Serializable 接口;

3)transient只能用来修饰普通成员变量字段;

4)不管有没有 transient 修饰,静态变量都不能被序列化;

原因:
序列化保存的是对象的状态,静态变量数以类的状态,因此序列化并不保存静态变量

==添加如下两行代码就可以序列化transient 关键字修饰的成员变量

private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException {
	s.defaultWriteObject();
	s.writeObject(name2);
}
private void readObject(java.io.ObjectInputStream s) throws java.io.IOException, ClassNotFoundException {
	s.defaultReadObject();
	name2=String.valueOf(s.readObject());
}

5.Thread.yield( )
Java线程中的Thread.yield( )方法,译为线程让步。就是说当一个线程使用了这个方法之后,它就会把自己CPU执行的时间让掉,让自己或者其它的线程运行,注意并不是单纯的让给其他线程。

yield()的作用是让步。它能让当前线程由“运行状态”进入到“就绪状态”,从而让其它具有相同优先级的等待线程获取执行权;但是,并不能保证在当前线程调用yield()之后,其它具有相同优先级的线程就一定能获得执行权;也有可能是当前线程又进入到“运行状态”继续运行!

6. Unsafe

Java不能直接访问操作系统底层,而是通过本地方法来访问。Unsafe类提供了硬件级别的原子操作,主要提供了以下功能:

1、通过Unsafe类可以分配内存,可以释放内存;
类中提供的3个本地方法allocateMemory、reallocateMemory、freeMemory分别用于分配内存,扩充内存和释放内存,与C语言中的3个方法对应
2、可以定位对象某字段的内存位置,也可以修改对象的字段值,即使它是私有的;
3、挂起与恢复
将一个线程进行挂起是通过park方法实现的,调用 park后,线程将一直阻塞直到超时或者中断等条件出现。unpark可以终止一个挂起的线程,使其恢复正常。
4、CAS操作:是通过compareAndSwapXXX方法实现的
CAS操作有3个操作数,内存值M,预期值E,新值N,如果M==E,则将内存值修改为N,否则啥都不做;

7.redis分布式连接池同步调用

如果分布式调用代码是运行在线程中,那么直连调用方式就不合适了,因为直连方式是非线程安全的,
这个时候,你就必须选择连接池调用。连接池的调用方式,适合大规模的redis集群,并且多客户端的操作。

8.StringBuffer或StringBuilder
建议用非线程安全的StringBuilder;用ThreadLocal 给StringBuilder加上线程安全的条件;

9.进程
 进程里面第一个启动的线程,通常称为主线程;守护进程是一种特殊的后台进程,通常由操作系统启动,然后一直保持运行,
作为一个永久服务,除非系统关机,否则永远不会死亡。

10.Map类集合K/V能不能存储null值的情况
Hashtable                         :key不允许为null  value不允许为null
ConcurrentHashMap        :key不允许为null  value不允许为null
TreeMap                           :key不允许为null  value允许为null
HashMap                          :key允许为null      value允许为null

11.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值