java
文章平均质量分 70
M_灵均
灵者恒也,均者调也。
展开
-
提升项目TPS优化手段
项目要求单接口TPS为1w,为了达到这个目标,需要尽量减少请求的响应时间。原创 2022-12-28 16:05:36 · 3017 阅读 · 0 评论 -
Java进阶之对象集合
1. 记事本1.1. 功能描述添加日志删除日志查看指定日志查看所有日志获取日志数量1.2. 代码展示import java.util.ArrayList;public class NoteBook { private ArrayList<String> note; public NoteBook(){ note = new ArrayList<>(); } public void addNote(String s)原创 2021-12-26 13:42:59 · 390 阅读 · 0 评论 -
议equals与==
我们都知道,equals是比较值是否相同;而==是判断地址是否相同。但是,又是怎么实现的呢?我们自己创建的类,如果没有重写hashCode和equals,那么equals是比较值,还是比较地址呢?原创 2021-08-23 15:21:29 · 94 阅读 · 0 评论 -
并发与多线程
1. 基础篇1.1. 什么是线程和进程?线程是程序运行的最小单位;进程是资源调度的最小单位,是程序的一次执行过程。一个进程可以包含多个线程,线程共享进程的堆和方法区资源,同时每个线程有自己的程序计数器、虚拟机栈和本地方法栈。比如,在IDEA中,我们可以启动多个程序。打开IDEA就相当于开启一个进程;而运行程序就相当于一个线程。1.2. 线程的生命周期?6种New ==》 Runnable ==》Wait / Time_Wait/ Blocked ==》 Terminated1.3. 什么原创 2021-07-06 21:27:33 · 70 阅读 · 0 评论 -
创建线程的4种方法
1. 继承Thread类package thread;public class T extends Thread{ public void run(){ System.out.println("这是一个继承了Thread类的线程"); }}2. 实现Runnable接口package thread;public class R implements Runnable{ @Override public void run() {原创 2021-07-05 14:53:56 · 287 阅读 · 0 评论 -
String+StringBuilder+StringBuffer
1. String1.1. 类图1.2. String类的特性因为String类经常用到,所以JVM在堆中有一个区域存储:字符串常量池。每当创建字符串常量时,JVM会首先检查字符串常量池,如果该字符串已经存在常量池中,那么就直接返回常量池中的实例引用。如果字符串不存在常量池中,就会实例化该字符串并且将其放到常量池中。由于String字符串的不可变性,常量池中一定不存在两个相同的字符串。2. StringBuilder2.1. 类图3. StringBuffer3.1. 类图3.2原创 2021-06-30 15:25:03 · 93 阅读 · 0 评论 -
Synchronized and Lock
1. Synchronized1.1 synchronized关键字synchronized给对象obj进行加锁。线程A给对象obj加锁后,其他线程处于阻塞状态。1.2 Java对象布局对象头:- Mark Word:8字节- Klass Pointer:默认4字节。表示这个实例是属于哪个类的。属性(实例数据)填充数据对象头包含哪些信息?锁状态、GC信息、哈希码等基本信息age,有4bit用来存放S1和S2互移次数,最大15次。sychronized锁 状态 。原创 2021-06-22 15:46:30 · 59 阅读 · 0 评论 -
注解与反射
注解元注解负责注解其他注解。常用元注解,如下:// Target 表示我们的注解可以用在哪些地方@Target(value={ElementType.METHOD,})// 方法前// Retention:表示注解在什么地方生效:生命周期// RUNTIME>CLASS>SOURCE@Retention(value = RetentionPolicy.RUNTIME)// Documented: 表示是否将我们的注解生成在JavaDoc中@Documented// In原创 2021-05-31 15:54:23 · 58 阅读 · 0 评论 -
JVM内存
JVM运行时数据区数据对应存储区域局部变量:基础类型:引用和值都存在栈中;引用类型:对象引用存在栈中,对象存在堆中;成员变量:存在堆中。new的对象:存在堆中。字符串常量:jdk1.7之前是存在方法区的运行时常量池;jdk1.7及之后字符串常量池从方法区中移出,在堆中开辟了一块区域存放字符串常量。区域对应数据:JVM栈每个Java方法在执行的同时会创建一个栈帧用于存储局部变量表,操作数栈,动态链接和方法出口等信息。每一个方法从调用直至结束,就对应一个栈帧从虚拟机栈中入栈到出原创 2021-04-27 10:07:37 · 126 阅读 · 0 评论