当前位置: 首页 > news >正文

Java 基础

 1 swap 数据交换 

    public static void swap(int a, int b){int t = a^b;b = t ^ b;a = t ^ a;System.out.println(a);System.out.println(b);}

2. Cloneable 接口

    @Data@AllArgsConstructor@NoArgsConstructorstatic class A  implements Cloneable{int a;int b;@Overridepublic Object clone() throws CloneNotSupportedException {return super.clone(); // 调用Object.clone()}}

3. 老炮问题==  和equals 的区别, 那个hashcode 方法实际返回的不是真实物理地址,两个hashocode 返回的hashcode 值相同 并且equals 也相同但是他两个照样不相等

public  static  boolean binarySearch(int [] arr, int target){int left = 0;int right = arr.length;while(left < right){int middle = left + ((right - left) >> 1); // 课本中一般是除以2if(arr[middle] == target){return true;}else if(arr[middle] > target){right--;}else {left++;}}return false;}
        public boolean equals(Object obj) {if (obj instanceof Integer) {return value == ((Integer)obj).intValue();}return false;}    A aa = new A(1,2);Object clone = aa.clone();System.out.println(aa.equals(clone));System.out.println(aa.hashCode());System.out.println(clone.hashCode());System.out.println(System.identityHashCode(aa));;System.out.println(System.identityHashCode(clone));Integer num1 = 129;Integer num11 = 129;Integer num2 = new Integer(129);Integer num3 = new Integer(129);System.out.println(num1 == num11); // trueSystem.out.println(num1 == num2); // falseSystem.out.println(num2 == num3);// falseSystem.out.println(num1.equals(num11)); // trueSystem.out.println(num2.equals(num3));// trueSystem.out.println(num1.equals(num2));// trueSystem.out.println(System.identityHashCode(num1));System.out.println(System.identityHashCode(num11));System.out.println(System.identityHashCode(num2));

     自动拆箱-127-128  == 和equals相同 Integer a=2  和 Integer b = 2

        public boolean equals(Object anObject) {if (this == anObject) {return true;}if (anObject instanceof String) {String anotherString = (String)anObject;int n = value.length;if (n == anotherString.value.length) {char v1[] = value;char v2[] = anotherString.value;int i = 0;while (n-- != 0) {if (v1[i] != v2[i])return false;i++;}return true;}}return false;}String s1 = "a";String s2 = "a";String s3 = new String("a");String s4 = s3.intern();System.out.println(s1 == s1); // trueSystem.out.println(s1.equals(s2)); // trueSystem.out.println(s1.equals(s3));// trueSystem.out.println(s1 == s3); // falseSystem.out.println(s3.equals(s4)); // trueSystem.out.println(s3 == s4); // falseSystem.out.println(System.identityHashCode(s1)); //1940030785System.out.println(System.identityHashCode(s2));// 1940030785System.out.println(System.identityHashCode(s3));// 1869997857System.out.println(System.identityHashCode(s4));//1940030785

  jdk8 版本这个value 数据 是char ,后来版本改成byte 数组了为啥节省空间 

public final class Stringimplements java.io.Serializable, Comparable<String>, CharSequence {/** The value is used for character storage. */private final char value[];
}

 常用String API 算法题必本,拆分字符串

String s5 = new String(s1.getBytes(StandardCharsets.UTF_8),StandardCharsets.ISO_8859_1);System.out.println(s5);StringBuffer sb = new StringBuffer(s5);String s6 = sb.reverse().toString();Pattern p = Pattern.compile(pattern2);Matcher matcher = p.matcher("abcde@163.com,12345dd@,d1235");while(matcher.find()){String group = matcher.group();System.out.println(group);}

4.BigDecimal类

​public static void main(String[] args) {BigDecimal a = BigDecimal.valueOf(0.2);BigDecimal b = BigDecimal.valueOf(0.20);BigDecimal c = BigDecimal.valueOf(0.1);BigDecimal d = b.add(c);BigDecimal e = BigDecimal.valueOf(57).divide(BigDecimal.valueOf(100));System.out.println(d); // 0.3System.out.println(e); // 0.57System.out.println(a.scale()); // 1System.out.println(a.signum());// 1System.out.println(b.scale()); //1System.out.println(b.signum()); // 1System.out.println(a.hashCode()); //63System.out.println(b.hashCode()); // 63System.out.println(c.hashCode()); // 32System.out.println(d.hashCode()); // 94System.out.println(a == b); // falseSystem.out.println(a.equals(b)); // trueSystem.out.println(a.compareTo(b)== 0 ? true: false); // true}​

5. jstack 如何查看线程栈

    jstack [-l] <pid>(to connect to running process)jstack -F [-m] [-l] <pid>(to connect to a hung process)jstack [-m] [-l] <executable> <core>(to connect to a core file)jstack [-m] [-l] [server_id@]<remote server IP or hostname>(to connect to a remote debug server)Options:-F  to force a thread dump. Use when jstack <pid> does not respond (process is hung)-m  to print both java and native frames (mixed mode)-l  long listing. Prints additional information about locks-h or -help to print this help message
(base) PS D:\code\springboot-starter-demo\rocketmq-start-demo> 
jmap -heap <pid>jmap -histo:live <pid> | head -n 20 # 仅显示前20行jmap -dump:live,format=b,file=heap.hprof <pid>

 mysql 死锁排查

1. 查看当前运行的事务
SELECT * FROM information_schema.INNODB_TRX;
这个查询会显示当前所有正在运行的事务,包括事务ID、事务状态、开始时间、锁等待状态等信息。2. 查看锁等待情况
SELECT * FROM information_schema.INNODB_LOCK_WAITS;
这个查询显示当前正在等待锁的事务和被阻塞的事务之间的关系。3. 查看锁信息
SELECT * FROM information_schema.INNODB_LOCKS;
这个查询显示当前持有的锁和请求的锁的详细信息。4. 查看进程列表
SHOW PROCESSLIST;
这个命令显示当前所有连接的状态,可以帮助你识别长时间运行的事务或锁等待。5. 性能模式(Performance Schema)中的锁信息
SELECT * FROM performance_schema.events_waits_current 
WHERE EVENT_NAME LIKE '%lock%';
6. 查看事务隔离级别
SELECT @@transaction_isolation;
实用查询组合
以下是一个更全面的查询,可以查看事务和锁的详细信息:SELECT r.trx_id waiting_trx_id,r.trx_mysql_thread_id waiting_thread,r.trx_query waiting_query,b.trx_id blocking_trx_id,b.trx_mysql_thread_id blocking_thread,b.trx_query blocking_query
FROM information_schema.innodb_lock_waits w
INNER JOIN information_schema.innodb_trx b ON b.trx_id = w.blocking_trx_id
INNER JOIN information_schema.innodb_trx r ON r.trx_id = w.requesting_trx_id;

相关文章:

  • 崇安网站建设百度百家自媒体平台注册
  • 装修网站怎么做baidu百度首页官网
  • 优化疫情防控措施新十条seo外链怎么做能看到效果
  • 做精细化工网站网站管理工具
  • 网站建设策划 优帮云seo综合查询 站长工具
  • 沈阳网站制作教学北京网站seo哪家公司好
  • 刷题记录(6)栈与队列相关操作
  • 墨水屏 函数Paint_SetScale的详解
  • 6个月Python学习计划 Day 4 - 列表 元组基础
  • no cmake_c_compiler could be found.
  • 电子学会Python一级考试
  • 字节跳动2025年校招笔试手撕真题教程(一)
  • Android应用中设置非系统默认语言(java)
  • 腾讯云国际站可靠性测试
  • Seata分布式事务详解:原理、实现与代码示例
  • 基于PySide6与pycatia的CATIA几何阵列生成器开发实践
  • 【深度学习】2. 从梯度推导到优化策略:反向传播与 SGD, Mini SGD
  • SpringBoot-12-传统MyBatis与JDBC连接MySQL的方式衬托SpringBoot的强大
  • 美团2025年校招笔试真题手撕教程(一)
  • 健身网l;l;j
  • AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年5月25日第88弹
  • 【LCEL深度解析】LangChain表达式语言的工程化实践指南
  • 文件操作(C语言版)
  • DAY36打卡@浙大疏锦行
  • 6.4.2_2最短路径算法-Dijkstra算法
  • redis集群如何迁移