
基础java
文章平均质量分 68
落小渔
我站在1楼,有人骂我,我听到了很生气。
我站在10楼,有人骂我,我听不清,还以为他在跟我打招呼。
我站在100楼,有人骂我,我放眼望去,只有尽收眼底的风景。
一个人之所以会痛苦,是因为他没有高度。
高度不够,看到的都是问题,格局太小,纠结的都是鸡毛蒜皮
展开
-
Java CAS【通俗易懂-转】
转:Java 什么是 CAS? 通俗易懂_wengyupeng 蜗牛一步一步向前。。。-优快云博客_java的cas是什么意思转载 2022-01-22 16:15:35 · 185 阅读 · 0 评论 -
Java 四种引用【转】
整理自:马士兵老师详解:Java的四种引用类型(对象的强、软、弱和虚引用)_哔哩哔哩_bilibili1. Java有哪些引用类型强软弱虚2. 什么是强引用?如上:M类重写了一个finalize 方法。正常不建议重写,重写的目的是为了跟踪M产生的对象被gc垃圾回收的过程。finalize在对象被回收的时候,会被调用到,所以:当看到打印finalize,就知道 对象被回收3. 软引用当空间不够了,软引用的对象会被回收可以通过-Xmx20M设置1. 问题来.转载 2022-03-14 14:56:55 · 179 阅读 · 0 评论 -
ThreadLocal 理解Ing
1. ThreadLocal是什么?当某些数据是以线程为作用域并且不同线程有不同数据副本时,考虑ThreadLocal。一句话理解ThreadLocal,向ThreadLocal里面存东西就是向它里面的Map存东西的,然后ThreadLocal把这个Map挂到当前的线程底下,这样Map就只属于这个线程了。2.ThreadLocal的简单使用public class ThreadLocaDemo { private static ThreadLocal<Str.原创 2022-03-10 03:03:29 · 201 阅读 · 0 评论 -
ConcurrentHashMap 来,聊一聊原理?
https://blog.youkuaiyun.com/yunzhaji3762/article/details/113623168?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164620562716780265470824%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164620562716780265470824&biz_id=原创 2022-03-02 15:51:06 · 550 阅读 · 0 评论 -
说一下ArrayList和LinkedList的区别【整理中】
阿里面试官:说一下ArrayList和LinkedList的区别?_沉默王二-优快云博客看到上面的内容?讲解很透彻,但是针对的是jdk14.这里针对jdk8.来说明下1. ArrayList 和LinkList 是 List 接口的两种不同实现,并且两者都不是线程安全的jdk8下:ArrayList 内部使用的动态数组来存储元素,LinkedList 内部使用的双向链表来存储元素,这也是 ArrayList 和 LinkedList 最本质的区别2. ArrayL...原创 2022-03-01 18:10:40 · 335 阅读 · 0 评论 -
volitaile 内存屏障
参考:什么是Volatile关键字?_独家技术的博客-优快云博客_volatile1. 什么是指令重排序JVM在编译Java代码的时候,或者CPU在执行JVM字节码的时候,对现有的【指令顺序】进行【重新排序】2. 重排序的目的为了在不改变程序执行结果的前提下,优化程序的运行效率。需要注意的是,这里所说的不改变执行结果,指的是【单线程】下的程序执行结果3. 重排序会不会有什么其他问题?指令重排序是一把双刃剑,虽然优化了程序的执行效率,但是在某些情况下,会影响到【多线程】原创 2022-02-28 15:01:56 · 272 阅读 · 0 评论 -
Bean相关 IoC Aop
Spring IoC容器 -Spring教程™1. 一个简单的Spring bean【讲一个对象类以bean的形式交托给Spring管理】Pom依赖<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId&.原创 2022-02-26 15:37:16 · 302 阅读 · 0 评论 -
Java重写ToString()、equals和hashCode区别
0. "==" 和 equals区别Object类中的equals方法和“==”是一样的,没有区别,即俩个对象的比较是比较他们的栈内存中存储的内存地址。而String类,Integer类等等一些类,是重写了equals方法,才使得equals和“==不同”,他们比较的是值是不是相等//“==”对于基本数据类型,判断两个变量的值是否相等。/“equal”不能用于基本数据类型1、为什么要重写ToString?所有的对象都会有这个方法【继承Object】,如下默认情况下:getName+@原创 2022-02-26 02:09:08 · 765 阅读 · 0 评论 -
java 多线程整理
多线程1. Java 并发机制实现原子操作有两种: 一种是锁,一种是CAS[CAS是Compare And Swap]2. 进程是资源分配的最小单位,线程是cpu调度的最小单位3. thread start->startThread->thread_entry->run3. thread 实现了 Runnable4. Thread(Runnable target)5. Thread(Runnable target,String name) 6. 获取线程返回结果———...原创 2022-02-21 16:44:02 · 146 阅读 · 0 评论 -
java 基础整理
装箱就是自动将基本数据类型转换为包装器类型;拆箱就是 自动将包装器类型转换为基本数据类型1. 只发生在编译阶段2. 自动装箱会涉及到缓存。普通的new 不会3. 拆箱时可能发生NullPointerException1. jedis.2. set nx px[分布式锁]3. del nx [只能删除自己的]4. lua脚本1. class对象。 反射 student.getClass Student.Class forName2. 在运行期间,一个类,只有一个Class对象产...原创 2022-02-21 10:47:06 · 191 阅读 · 0 评论 -
10. Java常用类库与技巧
1. 异常如图所示:抛出可以检查异常的时候。编译器会报错。【需要特殊处理】同时:不应该泛华异常。因为这样的结果不利于定位具体的问题这样的目的是:需要try catch或者继续向上抛出异常Java Exception的处理机制1. 先执行doWork。 10/0 触发异常 所以不会打印i=...2. ArithmeticException异常捕获。 打印异常。在return 0之前,执行finally3. finally里面...原创 2022-01-23 17:24:41 · 353 阅读 · 0 评论 -
HashMap理解
1.由数组+链表的结构改为数组+链表+红⿊树。2. 优化了⾼位运算的hash算法:h^(h>>>16)3. 扩容后,元素要么是在原位置,要么是在原位置再移动2次幂的位置,且链表顺序不变。【当超过限制的时候会resize,然而又因为我们使用的是2次幂的扩展(指长度扩为原来2倍),所以,元素的位置要么是在原位置,要么是在原位置再移动2次幂的位置】1. 底层数据结构?JDK 1.7: Table数组+ Entry链表JDK1.8: Table数组+ Entry链表/...原创 2022-01-21 16:39:31 · 817 阅读 · 0 评论 -
设计模式——桥接模式
参考:【狂神说Java】通俗易懂的23种设计模式教学(停更)_哔哩哔哩_bilibili【桥接模式】:将多个变化的维度进行抽象【使用接口或者抽象类】的方式 + 组合如下:品牌和类型就是两个变化的维度,然后将其进行桥接1. 桥接模式bridge多层继承,同时违反了单一职责【苹果台式:苹果+台式】,相当于是一个类有多个功能两个抽象类。抽象品牌://品牌public interface Brand { void info();}苹果品牌//...原创 2022-01-19 23:05:21 · 638 阅读 · 0 评论 -
6.7. 《剑指Java面试-Offer直通车》--JVM
OOM的原因是什么?这里的栈是虚拟机栈永久代的大小【JDK6会出现这个问题】【切换到JDK7之后,常量池移动到了堆中】返回false、false【因为在JDK6中想要放的是副本】返回true、false【JDK7以后,存放的是引用】【老年代】当触发老年代的垃圾回收的时候,通常也伴随着对新生代堆的回收 ,即对整个堆进行回收【full gc】其中永久代:指的是...原创 2022-01-18 15:56:17 · 276 阅读 · 0 评论 -
String StringBuilder StringBuffer【常量池相关】
参考:String,StringBuffer与StringBuilder的区别_黎明前的准备-优快云博客_stringbuffer和stringbuilderJAVA常量池,一篇文章就足够入门了。(含图解)_人在江湖-优快云博客_常量池1. 字符串常量池String a = "abc";String b = new String("abc");System.out.println(a == b);----*----结果:false"abc"是在常量池中,new .原创 2022-01-18 15:18:10 · 2310 阅读 · 0 评论 -
设计模式——适配器
GitHub - bailuoxi66/designMode参考:【狂神说Java】通俗易懂的23种设计模式教学(停更)_哔哩哔哩_bilibili1. 适配器【可以更好的建模】首先:有网线//要被适配的类 网线public class Adaptee { public void request(){ System.out.println("连接网线上网"); }} 因为要面向接口编程,所以需要写一个转接头的接口//接口转化器,..原创 2022-01-17 21:52:36 · 413 阅读 · 0 评论 -
设计模式——单例
参考:尚硅谷Java设计模式(图解+框架源码剖析)_哔哩哔哩_bilibili【狂神说Java】单例模式-23种设计模式系列_哔哩哔哩_bilibili1. 饿汉(静态常量)public class SingletonTest01 { public static void main(String[] args) { Singleton instance = Singleton.getInstance(); Singleton instance原创 2022-01-17 13:27:59 · 227 阅读 · 0 评论 -
ListUtils.retainAll
ListUtils针对list的交集(retainAll)、差集(subtract)使用_xy978318356的博客-优快云博客_listutils 交集转载 2022-01-15 19:34:06 · 475 阅读 · 0 评论 -
Transtraional
@Transactional事务几点注意_每每看到代码,就会有亲切之感!-优快云博客转载 2022-01-15 19:33:12 · 86 阅读 · 0 评论 -
2.《剑指Java面试-Offer直通车》--数据库
如何设计一个关系型数据库?数据库最主要的功能是存储数据,因此有一个存储模块存储数据。存储模块类似OS文件系统,将数据持久化存入磁盘中,如存入机械硬盘、SSD固态硬盘、亦或者是它们的磁盘阵列矩阵中。但是只有存储是不行的,还需要组织并且用到这些数据,因此需要有程序的实例,用逻辑结构来映射出物理结构,并且在程序中提供获取和管理数据的方式,以及提供必要的问题追踪机制。细分程序模块:1)数据逻辑关系转换成物理存储关系的存储管理模块:首先对数据的格式和文件的分隔进行统一的管理,即把物理数据通过逻辑..原创 2022-01-15 00:29:29 · 703 阅读 · 0 评论 -
1.《剑指Java面试-Offer直通车》--计算机网络
一、网络基础知识讲解 OSI开放式互联参考模型 第1层 物理层首先解决两台物理机之间的通信需求,具体就是机器A往机器B发送比特流,机器B能收到比特流。主要作用是传输比特流(0101二进制数据),将比特流转化为电流强弱传输,到达目的后再转化为比特流,即常说的数模转化和模数转换。这层数据叫做比特。网卡工作在这层。第2层 数据链路层【封装成帧、透明传输、差错检测】封装成帧:在数据前后添加首部和尾部,使用帧定界符。(SOH、EOT),数据部分小等于MTU透明传输:为了.原创 2022-01-12 13:17:20 · 630 阅读 · 0 评论 -
使用Arthas确认那个Controller处理了请求【整理】
参考:Arthas实践:是哪个Controller处理了请求?_横云断岭的专栏-优快云博客SpringMVC源码——doDispatch方法源码分析——一看就会_可乐多点冰的博客-优快云博客_dodispatch方法详解demo:https://github.com/bailuoxi66/snapUpDemo/tree/master/springBoot-Redis-Demo/springboot-filter访问:http://localhost:8080/test11....原创 2022-01-06 14:58:52 · 1020 阅读 · 0 评论 -
5. 堆 - 【整理版】
来源:JVM系列-第5章-堆 | 风祈的时光录纪要:1. 堆与进程一个进程只有一个JVM实例,一个JVM实例中就有一个运行时数据区,一个运行时数据区只有一个堆和一个方法区。 但是进程包含多个线程,他们是共享同一堆空间的。 在方法结束后,触发了GC的时候,堆才会进行回收 2. java7及其之前的堆和方法区的物理存储Java7及以前版本的Hotspot中方法区位于永久代中永久代和堆是相互隔离的,但它们使用的物理内存是连续的永久代的垃圾收集是和老年代捆绑在一起的,原创 2022-01-04 10:26:32 · 450 阅读 · 0 评论 -
SpringBoot filter 责任链
参考:SpringBoot中filter的使用详解及原理_u014627099的博客-优快云博客_filter springbootArthas实践--快速排查Spring Boot应用404/401问题 | 横云断岭的专栏1. 处理请求流程Request -》 filter1 -〉 filter2 -》 controller |Request《- filter1 《-...原创 2021-12-31 15:26:35 · 1419 阅读 · 0 评论 -
java init方法
init和destroy对应,一个加载一个销毁有时候有一种场景是:初始化一个对象(bean)后立即初始化(加载一些数据)配置类@Configuration@ComponentScan("springTest2")public class ConfigTest { @Bean(initMethod = "init", destroyMethod = "destroy") Test1 test1() { return new Test1(); }}//调用Annotatio转载 2021-07-01 00:35:21 · 9284 阅读 · 0 评论 -
CompletableFuture
https://blog.youkuaiyun.com/finalheart/article/details/87615546?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162403327016780264059648%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162403327016780264059648&biz_id=0&a转载 2021-06-19 10:58:37 · 192 阅读 · 0 评论 -
jedispoll相关内容
1. jedispoll:https://blog.youkuaiyun.com/qq78442761/article/details/103491771?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162393455216780255273255%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=162393455216780转载 2021-06-17 20:58:32 · 160 阅读 · 0 评论 -
Java run start
转:https://www.cnblogs.com/renhui/p/6066750.html转载 2021-06-17 20:27:31 · 129 阅读 · 0 评论 -
查询工程里面的第三方库如何引入的?
1. 找寻当前的Logger是如何引入的?原创 2021-06-13 14:27:41 · 109 阅读 · 0 评论 -
空指针问题
1、分析下之前遇到的空指针异常案例案例一:package TestString;import java.util.*;public class TString{ public static void main(String[] args) { Boolean flag = false; Map<String, Boolean> map = new HashMap<>(); flag = map.get("ab原创 2021-06-11 00:52:34 · 210 阅读 · 0 评论