
学习笔记
啦啦啦头
这个作者很懒,什么都没留下…
展开
-
JVM学习笔记之内存模型(一)
概念: Java虚拟机在执行Java程序过程会把内存划分为若干个区域,大致可以分为线程共享区和线程私有区,如图:线程私有区每个线程都有自己的虚拟机栈、本地方法栈、程序计数器1.虚拟机栈:存储当前线程运行方法所需的数据、指令、返回地址且虚拟机栈以栈帧的形式存储。看下面简单的代码public class Test { public static void main(String[] args) { work(); } public static原创 2020-09-22 12:08:30 · 110 阅读 · 0 评论 -
CAS是什么?(思想)
英文:CompareAndSwap判断内存某个位置的值是否为预期值,如果是则更改为新值说白了就是比较和交换三行代码解释其作用:首先我们创建AtomicInteger原子类,给他赋值为5,不了解原子类的可以暂时把他看成一个普通的Int类型。然后调用compareAndSet(5, 6)方法,这个参数 5 跟atomicInteger 的值(5)进行对比,如果相等,则将参数值6赋值给atomicInteger ,结果返回true,如果不相等,不做任何处理,返回false AtomicInteger原创 2020-08-24 18:08:19 · 380 阅读 · 0 评论 -
多线程下的懒汉式(单例)问题以及解决办法
单线程下的懒汉模式public class SingletonDemo { private static SingletonDemo instance=null; private SingletonDemo(){ System.out.println(Thread.currentThread().getName()+"\t 我是构造方法"); } public static SingletonDemo getInstance(){ if(in原创 2020-08-24 16:29:21 · 819 阅读 · 0 评论 -
java通过反射访问(私有)构造方法(创建对象)
//首先我们创建一个Person类,有一个有参构造方法和一个无参构造方法 Person{ private String name; private int age; Person(){} Person(String name,int age){ this.name = name; this.age = age; ...省略getter和setter } } //这里的参数是Person所处在的包 Class <Person> pClass = (C原创 2020-07-23 11:27:22 · 1847 阅读 · 0 评论 -
java使用Json
JSON一种轻量级的数据交换格式格式: { “name” : “zhangsan” , “age” : “18”}可以嵌套[]数组,{}对象如:{ "num" : ["1","2","3",{ "n":"10", "n1":"20" } ] }使用方法使用Gson //创建Gson对象 Gson g = new Gson(); //创建书本对象 Book book = new Book("1","平凡的世界","你我皆平凡原创 2020-07-22 16:08:22 · 106 阅读 · 0 评论 -
线程与进程的笔记
进程:是指内存运行的应用程序,如:qq , 网易云软件,打开任务管理器就可以查看计算机所有的进程。且有自己独立的内存空间。线程:是进程的一个执行单位,共享一个内存空间(堆),拥有自己的栈空间,一个进程至少有一个线程线程调度:分时调度: 平均分配抢占式调度:看优先级,如优先级相同则随机,java使用该调度多线程的实现继承Thread类实现Runnable接口线程的中断线程中断调用interrupt(),线程只是捕获这个中断标记,具体中断实现需要自己编写。守护线程set原创 2020-07-20 14:27:21 · 108 阅读 · 0 评论