java
Csea_
这个作者很懒,什么都没留下…
展开
-
JVM性能调优理论学习记录
JVM内存结构堆从持久度 ——> 元空间,在原先的持久代时经常会遇到OOM。栈虚拟机栈虚拟机栈管理Java方法本地方法栈本地方法栈管理的是native方法(C代码)程序计数器程序计数器:用来记录各个线程字节码的地址,像分支、循环、跳转、异常、线程恢复等等操作,都需要依赖程序计数器。由于Java是一个多线程的语言,当执行的线程数量超过CPU核心的时候,线程之间就会根据时间片去争抢资源。方法区静态常量池(也叫class文件常量池)主要存放:字面量:如文本字符串、final修原创 2020-12-06 21:17:24 · 279 阅读 · 0 评论 -
Java线程学习记录(九)——线程异常处理
线程的未捕获异常UncaughtException应该如何处理为什么需要UncaughExceptionHandler主线程可以轻松发现异常,子线程却不行public class ExceptionInChildThread implements Runnable { public static void main(String[] args) { new Thread(new ExceptionInChildThread()).start(); for (i原创 2020-05-24 19:49:18 · 374 阅读 · 0 评论 -
Java线程学习记录(八)——线程属性
线程IdId从1开始,JVM运行起来之后,我们自己创建的线程ID早已不是2public class Id { public static void main(String[] args) { Thread thread = new Thread(); System.out.println("主线程的ID:" + Thread.currentThread().getId()); System.out.println("子线程的ID:" + thre.原创 2020-05-23 22:05:53 · 212 阅读 · 0 评论 -
Java线程学习记录(七)——join
作用: 因为新的线程加入了我们,所以我们要等他执行完再出发。用法: main等待thread1执行完毕,注意谁等谁。普通用法public class Join { public static void main(String[] args) throws InterruptedException { Thread thread1 = new Thread(new Runnable() { @Override public void原创 2020-05-23 16:17:37 · 119 阅读 · 0 评论 -
Java线程学习记录(六)——sleep
Sleep方法作用: 只想让线程在预期的时间执行,其他时候不要占用CPU资源,直到下一次调起的时候才去占用CPU资源。原创 2020-05-21 21:35:05 · 163 阅读 · 0 评论 -
Java线程学习记录(五)
Thread和Object类中重要方法Wait和notify的基本用法代码的执行顺序证明wait释放锁public class Wait { public static Object object = new Object(); static class Thread1 extends Thread { @Override public void run() { synchronized (object) {原创 2020-05-20 22:02:19 · 87 阅读 · 0 评论 -
Java线程学习记录(四)
线程的六个状态New :已创建,但未启动,还没有执行run()Runnable :从new调用了start转变为了runnable,这里的runnabled既可以代表可运行,又可以代表运行中的Blocked :当一个线程进入synchronized修饰的代码块,并且该锁已经被其他线程拿走了,这时候线程进入到了blocked,blocked的状态只针对于synchronized修饰的。Waiting :没有设置timeout的等待Timed Waiting:设置了timeout的等待Termi原创 2020-05-12 21:38:09 · 116 阅读 · 0 评论 -
Java线程学习记录(三)
线程停止run 方法内没有sleep或wait方法时,停止线程下面这段代码while中监听了interrupt的状态,如果不监听他是不会停止下来的。public class RightStopThreadWithoutSleep implements Runnable { public static void main(String[] args) throws InterruptedException { Thread thread = new Thread(new Rig原创 2020-05-12 19:57:19 · 122 阅读 · 0 评论 -
Java线程学习记录(二)
start和run方法启动线程对比public class StartAndRunMethod { public static void main(String[] args) { Runnable runnable = () -> { System.out.println(Thread.currentThread().getName()); }; runnable.run(); new Thread原创 2020-05-09 17:17:26 · 96 阅读 · 0 评论 -
Java线程学习记录(一)
实现多线程的两种方式实现Runnable接口继承Thread类public class RunableStyle implements Runnable{ public static void main(String[] args) { Thread thread = new Thread(new RunableStyle()); thread....原创 2020-05-09 16:34:06 · 97 阅读 · 0 评论 -
Integer的值比较为什么推荐用equals而不是==
package com.csea;/** * @author Csea * @title * @date 2020/4/27 15:33 */public class IntegerEqual { public static void main(String[] args) { Integer a = 6; Integer b = 6; ...原创 2020-04-27 16:00:19 · 1666 阅读 · 0 评论 -
尽量不用+直接拼接字符串,使用StringBuilder来进行拼接
看测试代码package com.csea;/** * @author Csea * @title * @date 2020/4/26 16:33 */public class StringAppend { public static void main(String[] args) { long times = System.currentTimeMill...原创 2020-04-26 16:59:21 · 1427 阅读 · 0 评论 -
不要在ArrayList的foreach中进行remove操作
运行下面的代码会抛出异常package com.csea;import java.util.ArrayList;import java.util.List;/** * @author Csea * @title * @date 2020/4/26 15:55 */public class Listadd { public static void main(Strin...原创 2020-04-26 16:20:33 · 114 阅读 · 0 评论 -
Java中的强引用、软引用、弱引用、虚引用笔记
Java中有强引用、软引用、弱引用、虚引用四种类型的引用一方面可以让开发者自己手动控制对象的生命周期,另一方面可以让JVM来进行垃圾回收。强引用这是最常用的,用的最普遍的,不管内存是否占满,JVM都不会进行回收。Student student = new Student(); // 强引用如果内存满了,就会抛出异常,也不会进行回收处理,如果需要将其进行回收,需要将其进行弱化stude...原创 2020-04-26 15:46:42 · 115 阅读 · 0 评论 -
Lambda表达式语法及应用
文章目录Lambda表达式语法及应用Lambda简单比较传统模式下创建新线程Lambda表达式创建新线程函数式接口案例常见的函数式接口接收参数T,返回boolean接收参数T,没有返回值接收参数T对象,返回R对象不接收任何参数,直接通过get()获取指的类型对象接收参数对象T,返回结果对象T接收两个T对象,返回一个T对象结果Lambda表达式的基本语法案例没有参数,没有返回值的Lambda表达式绑...原创 2019-12-13 09:55:25 · 177 阅读 · 0 评论