【JAVASE】
JAVASE
Asher1
这个作者很懒,什么都没留下…
展开
-
java的类加载器
一.类加载的过程当程序主动使用某个类时,如果该类还未被加载到内存中,则JVM会通过加载、连接、初始化3个步骤来对该类进行初始化。如果没有意外,JVM将会连续完成3个步骤,所以有时也把这个3个步骤统称为类加载或类初始化。 类加载示意图1.加载将class字节码文件加载到内存中,并将这些数据转换成方法区中的运行时数据(静态变量、静态代码块、常量池等),在堆...原创 2020-08-15 17:13:38 · 304 阅读 · 0 评论 -
jvm垃圾回收器
一.垃圾回收器组合(A)、图中展示了7种不同分代的收集器:Serial、ParNew、Parallel Scavenge、Serial Old、Parallel Old、CMS、G1;(B)、而它们所处区域,则表明其是属于新生代收集器还是老年代收集器:新生代收集器:Serial、ParNew、Parallel Scavenge;老年代收集器:Serial Old、Parallel Old、CMS;整堆收集器:G1;(C)、两个...原创 2020-08-15 13:46:28 · 196 阅读 · 0 评论 -
jvm笔记
一.jvm内存模型1.结构图2.详解数据区:1)方法区:也称"永久代",它用于存储虚拟机加载的类信息、常量、静态变量、是各个线程共享的内存区域。(JDK 1.7 和 1.8 将字符串常量由永久代转移到堆中)2) 堆程序中动态创建的所有对象都是存放在Java堆中的;Java堆对所有的线程共享;从分代GC的角度看,堆分为如下几个区:eden,s0,s1,tenured;堆分区:1.8以前JVM的内存模型: 新生代(属于堆): 使用复制回收算法管理 eden.原创 2020-08-15 13:09:47 · 103 阅读 · 0 评论 -
LOCK和synchronized的区别
1.synchronized的缺点1)当一个代码块被synchronized修饰的时候,一个线程获取到了锁,并且执行代码块,那么其他的线程需要等待正在使用的线程释放掉这个锁,那么释放锁的方法只有两种,一种是代码执行完毕自动释放,一种是发生异常以后jvm会让线程去释放锁。那么如果这个正在执行的线程遇到什么问题,比如等待IO或者调用sleep方法等等被阻塞了,无法释放锁,而这时候其他线程只能一直等待,将会特别影响效率。那么有没有一种办法让其他线程不必一直傻乎乎的等在这里吗?2)当一个文件,同时被多个线程原创 2020-08-12 15:46:47 · 145 阅读 · 0 评论 -
java中锁的分类和使用
java中的锁分为以下几种乐观锁、悲观锁 独享锁、共享锁 公平锁、非公平锁 互斥锁、读写锁 可重入锁 分段锁 锁升级(无锁 -> 偏向锁 -> 轻量级锁 -> 重量级锁) 以上是一些锁的名词,这些分类并不是全是指锁的状态,有的指锁的特性,有的指锁的设计,下面总结的内容是对每个锁的名词进行一定的解释。1、乐观锁 & 悲观锁乐观锁与悲观锁并不是特指某两种类型的锁,是人们定义出来的概念或思想,主要是指看待并发同步的角度。乐观锁:乐观锁认为一个线程去拿数据的.原创 2020-08-12 14:23:51 · 271 阅读 · 0 评论 -
ArrayList详解
1.ArrayList的主要成员变量private static final int DEFAULT_CAPACITY = 10;//数组默认初始容量 private static final Object[] EMPTY_ELEMENTDATA = {};//定义一个空的数组实例以供其他需要用到空数组的地方调用 private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};//定义一个空数组,跟前面的区别就是这个空原创 2020-08-12 13:06:09 · 264 阅读 · 0 评论 -
java读取excle文件内容示例
这里有一张学生成绩表要将其中的数据读出来放到Student集合中先看下效果下面上代码Student 类package vo;public class Student { private String id; private String name; private String gender; private float java; private f原创 2017-12-17 15:08:26 · 20734 阅读 · 1 评论 -
关于java值传递跟引用传递的常见误区
我们先来看一段代码public class Text16 { public static void main(String[] args) { Circle demo = new Circle(5); System.out.println(demo.radius); change(demo); System.out.println(de原创 2017-12-30 22:47:22 · 195 阅读 · 0 评论 -
StringBuffer和StringBuilder的区别
无论是做Java或是Android,都避免不了遇到这个问题,其实开发过程中一般情况下是不会纠结,这个问题是面试必选经典题,今天有时间,就总结一下。String、StringBuffer、StringBuilder区别StringBuffer、StringBuilder和String一样,也用来代表字符串。String类是不可变类,任何对String的改变都 会引发新的String对象的生成;Str转载 2018-01-02 16:00:12 · 302 阅读 · 0 评论 -
==,equals的区别
Java 语言里的 equals方法其实是交给开发者去覆写的,让开发者自己去定义满足什么条件的两个Object是equal的。所以我们不能单纯的说equals到底比较的是什么。你想知道一个类的equals方法是什么意思就是要去看定义。Java中默认的 equals方法实现如下:public boolean equals(Object obj) { return (t原创 2018-01-02 17:30:23 · 261 阅读 · 0 评论