随笔分类 - javaSE
汇编语言入门教程
摘要:汇编语言入门教程 学习编程其实就是学高级语言,即那些为人类设计的计算机语言。 但是,计算机不理解高级语言,必须通过编译器转成二进制代码,才能运行。学会高级语言,并不等于理解计算机实际的运行步骤。 计算机真正能够理解的是低级语言,它专门用来控制硬件。汇编语言就是低级语言,直接描述/控制 CPU 的运行
阅读全文
什么是守护线程?
摘要:什么是守护线程? 参考答案 Java线程分为用户线程和守护线程。 守护线程是程序运行的时候在后台提供一种通用服务的线程。所有用户线程停止,进程会停掉所有守护线程,退出程序。 Java中把线程设置为守护线程的方法:在 start 线程之前调用线程的 setDaemon(true) 方法。 注意: se
阅读全文
OutOfMemoryError异常
摘要:OutOfMemoryError的原因有哪些?怎么解决? 参考答案 OutOfMemoryError 分为多种不同的错误: Java heap space 原因:JVM 中 heap 的最大值不满足需要 解决: 调高 heap 的最大值,-Xmx 的值调大 如果程序存在内存泄漏,增加 heap 空间
阅读全文
synchronized四种锁状态的升级
摘要:synchronized四种锁状态的升级 一、背景 在 Java 语言中,使用 Synchronized 是能够实现线程同步的,即加锁。并且实现的是悲观锁,在操作同步资源的时候直接先加锁。 加锁可以使一段代码在同一时间只有一个线程可以访问,在增加安全性的同时,牺牲掉的是程序的执行性能,所以为了在一定
阅读全文
JDK 8的HashMap源码解析
摘要:JDK 8的HashMap源码解析 感谢Neal Gafter、Arthur van Hoff、Josh Bloch、Doug Lea为我们提供了HashMap这一工具类,方便了诸多Java开发者的开发工作。 看再多的源码解析,自己不亲身去阅读源码,都是徒劳无功。 注释分析 为了我们能轻松地阅读源码
阅读全文
LinkedList原理分析
摘要:LinkedList的API boolean add(E object) void add(int location, E object) boolean addAll(Collection<? extends E> collection) boolean addAll(int location,
阅读全文
hashcode返回值可能为负数
摘要:hashcode返回值可能为负数 公司内部做服务优化,线上单机部署多个redis实例,路由到同一台机器上的用户,id号段假设为1000000~9999999,同一个的用户信息肯定是要固定到某个redis实例的,所以需要一个算法,保证每次选择的redis实例都是一样的。最容易想到的就是用id对redi
阅读全文
哈希碰撞与生日攻击
摘要:哈希碰撞与生日攻击 一、哈希碰撞是什么? 所谓哈希(hash),就是将不同的输入映射成独一无二的、固定长度的值(又称"哈希值")。它是最常见的软件运算之一。 如果不同的输入得到了同一个哈希值,就发生了"哈希碰撞"(collision)。 举例来说,很多网络服务会使用哈希函数,产生一个 token,标
阅读全文
流行的编程思维_面向对象-1
摘要:流行的编程思维_面向对象-1 问题: java面向对象的特征有哪些? 面向对象与面向过程的区别是什么? 基本数据类型与引用类型的区别有哪些? 方法重载和方法重写的区别是什么? 说到面向对象,就得和比较一下面向过程 面向过程是结构化开发,面向功能划分的软件结构 从上到下,按步执行,最小的粒度是方法 代
阅读全文
浙公网安备 33010602011771号