
程序人生
离散小维
这个作者很懒,什么都没留下…
展开
-
Java String对象的问题 String s=“a“+“b“+“c“+“d“ 变态问题
Java String对象的问题 String s="a"+"b"+"c"+"d" 1, String s="a"+"b"+"c"+"d"创建了几个对象(假设之前串池是空的) 2,StringBuilder sb = new StringBuilder(); String a = "a"; String b = "b"; String c = "c"; String d = "d...原创 2019-11-21 17:55:52 · 1098 阅读 · 0 评论 -
JVM 对 Java 的原生锁做了哪些优化?
自旋锁 在 Java 6 之前,Monitor 的实现完全依赖底层操作系统的互斥锁来实现。 由于 Java 层面的线程与操作系统的原生线程有映射关系,如果要将一个线程进行阻塞或唤起都需要操作系统的协助,这就需要从用户态切换到内核态来执行,这种切换代价十分昂贵,很耗处理器时间,现代 JDK 中做了大量的优化。 一种优化是使用自旋锁,即在把线程进行阻塞操作之前先让线程自旋等待一段时间,可能在等待期间...原创 2019-11-20 16:51:49 · 1931 阅读 · 0 评论 -
什么是可重入性,为什么说 Synchronized 是可重入锁?
什么是可重入性,为什么说 Synchronized 是可重入锁? 可重入性是锁的一个基本要求,是为了解决自己锁死自己的情况。 一个类中的同步方法调用另一个同步方法,假如 Synchronized 不支持重入,进入 method2 方法时当前线程获得锁,method2 方法里面执行 method1 时当前线程又要去尝试获取锁,对 Synchronized 来说,可重入性是显而易见的,刚才提到,在执...原创 2019-11-20 14:56:58 · 3991 阅读 · 0 评论 -
Synchronized 原理是什么? 2019 java 后端面试
Synchronized 是由 JVM 实现的一种实现互斥同步的一种方式,如果你查看被 Synchronized 修饰过的程序块编译后的字节码,会发现,被 Synchronized 修饰过的程序块,在编译前后被编译器生成了 monitorenter [ˈmɒnɪtə(r)] [ˈentə(r)] 和 monitorexit 两个字节码指令。 这两个指令是什么意思呢? 在虚拟机执行到 moni...原创 2019-11-20 14:52:34 · 256 阅读 · 0 评论 -
2019 阿里系 BTA JAVA 面试题
一、Java基础 什么是字符串常量池? String为什么是不可变的? String s = new String("xyz");究竟产生了几个对象,从JVM角度谈谈? String拼接字符串效率低,你知道原因吗? 你真的了解String的常见API吗? Java中的subString()真的会引起内存泄露么? 浅析Java中的final关键字? 浅析Java中的static关键字...原创 2019-11-20 14:40:02 · 627 阅读 · 2 评论 -
StringUtil 字符串处理工具
一个字符串处理的工具类(●’◡’●) 包含以下功能: 判断应用程序是否安装 字符拆分成数组 MD5 加密 拼接后的字符串 替换字符串 判断多个参数是否都为空 将字符串转换成HTML格式的字符串 将HTML格式的字符串转换成常规显示的字符串 获取加密的手机号 检查手机号 验证固定电话号码 检查密码有效 根据string.xml资源格式化字符串 验证身份证号码 将元单位数字转成int类型的元 格式化...转载 2018-11-27 17:34:53 · 1028 阅读 · 2 评论 -
2018年 java面试问题自测
J2SE基础 1. 九种基本数据类型的大小,以及他们的封装类。 2. Switch能否用string做参数? 3. equals与==的区别。 4. Object有哪些公用方法? 5. Java的四种引用,强弱软虚,用到的场景。 6. Hashcode的作用。 7. ArrayList、LinkedList、Vector的区别。 8. String、StringBuffer与StringBuild...原创 2018-02-08 09:01:54 · 797 阅读 · 0 评论 -
2017年【某公司产品部】【**语】 个人工作总结
2017年【产品部】【语】 个人工作总结 第一部分 2017年简要回顾 回顾2017年,半年左右的工作时间,可将工作划分为四个阶段点 第一阶段:根据部门领导针对入职新员工产品开发思路、逻辑、关系的掌握进行任务落实,并形成框架式的产品概念。 第二阶段:依照第一阶段的理解程度进行初步模拟产品开发,加强对项目逻辑关系的脑图强化。 第三阶段:初步对产品BUG与需求变动进行调原创 2018-01-30 14:42:20 · 371 阅读 · 2 评论