首页
学习
活动
专区
工具
TVP
发布

万能青年的 Java 编程

专栏作者
26
文章
17680
阅读量
17
订阅数
Java 面试题(一)
switch更适合判断条件单一的多种情况的判断,在分支执行完后(如果没有break跳出),不加判断地执行下去;而if—elseif---else多分枝主要适用于分支较少的分支结构,判断类型不是单一,只要一个分支被执行后,后边的分支不再执行。
万能青年
2019-09-19
6540
三个优化集合访问的方法
collection = new Veator(); 假设集合collection中存在"north1"、"west2"、"west6"、"south44"、
万能青年
2019-08-30
4280
LeetCode算法(二)
自评:需要先将每个罗马数字代表的数字保存起来。循环提取每一个罗马数字。因为不同的位置会有不同的做法,所以记录之前罗马数字的值,如果比上一次加的值大,则本次减去2倍的该值。
万能青年
2019-08-30
4070
JUC 多线程 CAS 算法
解释:一个线程在使用atomicInteger原子变量进行修改值的操作中,底层的CAS算法会拿自己工作空间的值去和主内存空间的值去比较,如果主内存值和期望数值5相同,则去修改为2019,否则修改失败。即CAS有三个操作数:内存值V、旧的预期值A、要修改的值B,当且仅当预期值A和内存值V相同时,将内存值修改为B并返回true,否则什么都不做并返回false。
万能青年
2019-08-30
3790
JVM如何确定垃圾以及常用参数
Java中,引用和对象是有关联的。如果要操作对象则必须引用进行。因此,简单的办法是通过引用计数来判断一个对象是否可以回收。简单的说,给对象中添加一个引用计数,每当有一个引用失效时,计数器值减1,任何时刻计数器值为0的对象就是不可能再被利用的,那么这个对象就是可回收对象。那么为什么主流的Java虚拟机里面都没有选择这种算法呢?主要的原因是它很难解决对象之间相互循环引用的问题。
万能青年
2019-08-30
7670
JVM虚拟机的内存模型
在JDK1.8以后永久区变为元空间,以上是JDK1.7之前的版本,堆内存可以进行优化,GC垃圾回收也存在堆内存,详细介绍看关于垃圾回收的文章。
万能青年
2019-08-30
5420
JUC 多线程基础
如果一个线程对共享变量的修改,能够被其它线程看到,那么就能说明共享变量在线程之间是可见的。如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量。
万能青年
2019-08-30
4660
JUC 多线程之 volatile 关键字
但是JMM ( java内存模型 )规范必须保证:内存可见性,禁止指令重排(有序性),原子性。
万能青年
2019-08-30
3580
JVM虚拟机垃圾回收机制
HotSpot JVM把新生区分为三部分:1个Eden区和2个Survivor区,默认内存大小比例为8 : 1 : 1,一般情况下,新创建的对象都会被分配到Eden区(一些大对象特殊处理),这些对象经过第一次Minor GC后,如果仍然存活,将会被移到Survivor区,对象在Survivor区中每熬过一次Minor GC,年龄都会增加1岁,当年龄增加到一定程度时,就会被移动到老年代中,因为年轻中的对象基本都是朝生夕死的,所以在年轻代的垃圾回收算法使用的是复制算法,复制算法的基本思想就是将内存分为两块,每次只用其中一块,当这一块内存用完,就将还活着的对象复制到另一块上面,复制算法不会产生内存碎片。
万能青年
2019-08-30
3470
LeetCode算法题(一)
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。
万能青年
2019-08-30
3080
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档