![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础知识点
文章平均质量分 84
Laughing_Xie
0到1的过程
展开
-
CAS And Atomic
CAS 原理 及Atomic操作原创 2023-01-15 12:20:11 · 462 阅读 · 0 评论 -
并发编程之线程基础
进程的通信及线程的通信方式,及线程的一些基础知识原创 2023-01-03 21:47:23 · 583 阅读 · 0 评论 -
java线程池理解及底层
线程池理解及部分底层原理解析原创 2022-12-31 17:04:28 · 473 阅读 · 0 评论 -
JMM(Java Memory Model)
Java虚拟机规范中定义了Java内存模型(共享内存模型,实现线程与线程之间的通信,其中主内存是逻辑空间),用于屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果,JMM规范了Java虚拟机与计算机内存是如何协同工作的:规定了一个线程如何和何时可以看到由其他线程修改过后的共享变量的值,以及在必要时如何同步的访问共享变量。原创 2022-11-30 23:54:51 · 492 阅读 · 0 评论 -
Linux整体介绍与常用命令整理
Linux操作系统学习,结合VMware学习原创 2022-11-07 21:43:46 · 78 阅读 · 0 评论 -
SpringData JPA学习笔记
Spring Data JPA 是基于JDBC之上的一组规范接口,JPA是由ORM框架实现,JPA用面向对象的方式,通过ORM框架生成SQL进行操作(最后还是要用JDBC去操作数据库)原创 2022-10-10 10:07:02 · 524 阅读 · 0 评论 -
jvm调优笔记
jvm调优实战学习笔记,及常量池解析原创 2022-09-27 00:07:34 · 894 阅读 · 0 评论 -
垃圾收集器及算法
垃圾收集器及垃圾收集算法原创 2022-09-22 23:08:27 · 302 阅读 · 0 评论 -
MySQL内核查询优化规则
MySQL在执行SQL语句的过程中会有很多的优化,比如:索引下推,回表中的MRR,索引合并等。但是在执行之前MySQL会依据一些规则,把SQL语句进行转换,以期可以达到某种可以高效执行的形式,这个过程可以被称作查询重写或者查询优化,很多时候这些优化可以由我们自行完成以减少MySQL的优化时间。...............原创 2022-08-15 23:43:20 · 921 阅读 · 0 评论 -
MySQL 慢查询及SQL执行时间监控
MySQL的慢查询,及mysql优化概念原创 2022-08-13 00:16:50 · 4703 阅读 · 0 评论 -
MySQL事务 隔离级别与锁机制
事务的隔离级别概述和锁的简单理解原创 2022-08-09 00:04:54 · 661 阅读 · 0 评论 -
Explain详解
Explain的介绍及实际使用,结合MySQL的底层数据结构及原理,对SQL语句进一步进行优化方案的完善原创 2022-08-03 23:51:33 · 389 阅读 · 0 评论 -
mybatis-plus 实体类初步解析
mybatis-plus 实体类的创建及注意点,考虑数据库兼容性及分布式数据库存储数据的问题,默认用雪花算法64bit原创 2022-07-26 23:41:31 · 1891 阅读 · 0 评论 -
打印数字的位信息
数据底层都是二进制组成,如何打印int 和 long类型数字的位信息?int 类型为基本数据类型,占4字节,32位。long类型也为基本数据类型,占8字节,84位。这里需要用的 “&” 与运算。原创 2022-06-01 17:30:30 · 150 阅读 · 0 评论 -
TCP / IP
分层模型应用层一般为程序员经常使用的,就是和具体的协议,具体的程序打交道的层级原创 2022-05-07 23:07:13 · 762 阅读 · 0 评论 -
Redis笔记
什么是NoSQLNot Only SQL 泛指非关系型数据库,传统的关系型数据库,很难应对web2.0时代,尤其是超大规模的高并发的社区。在大数据环境下发展的十分迅速。Redis原创 2022-04-28 23:39:15 · 1742 阅读 · 0 评论 -
JDK8 时间类
以前常用java.util.Date 类,现在常用java.time.LocalDate; 都有对应的格式化类Date类线程不安全,在高并发情况下会比较明显,而且经常通过new Date()方式出来的时间格式并不是完全想要的,可以通过 new SimpleDateFormat()对Date类型数据 进行格式化操作。原创 2022-04-19 11:33:07 · 442 阅读 · 0 评论 -
Linux笔记整理
Linux是一个操作系统,一切皆文件:读、写、(权限)原创 2022-04-17 22:05:44 · 1316 阅读 · 0 评论 -
Mybatis-plus笔记整理
雪花算法数据库的扩展方式主要包括:业务分库,主从复制,数据库分表数据库分表 如果业务持续发展,同一业务的单表数据也会达到数据库服务器的处理瓶颈;例如淘宝几亿用户数据,因此需要对单表数据进行拆分。垂直分表 列也比较多,查询量比较大的时候,通常把经常被查询的字段 和 数据量比较大的字段,拆分到不同的表中,比如age,sex 主要是查询使用,nickname昵称字段和描述字段主要用于展示使用而且本身还比较长,可以将后面两个字段独立到另一个表中去,这样查询的age 和 sex时 能带来一..原创 2022-03-06 23:31:24 · 3048 阅读 · 1 评论 -
InnoDB引擎底层存储和缓存原理
一、数据页平时执行CRUD的时候,都会从磁盘加载数据页到Buffer Pool的缓存页,更新缓存页后,由异步线程刷回磁盘的数据页,MySQL进行数据操作的最小单位是数据页。每个数据页默认16kb,数据页由多个部分组成,如图在数据页还未写入数据时,是没有数据行的,只有空闲空间,写入就会占用空闲空间,直到空闲空间耗尽,数据页满了自然会开辟新的数据页来存储数据。数据页之间通过双向链表来链接。在文件头中存放了如当前页号、页类型、所属表空间、上一页号、下一页号等等。 数据页内部会存储一....原创 2022-03-04 14:47:23 · 838 阅读 · 1 评论 -
SpringBoot笔记整理
SpringBoot-jar:内嵌tomcat服务越来越多:springcloud约定大于配置的核心思想,核心:自动装配,同时集成了大量第三方库配置。优点:更快入门,开箱即用,内嵌容器简化web,没有冗余代码和很多xml配置微服务:是一种架构风格,在开发一个应用的时候,这个应用必须构建成一系列小服务的组合,可以通过http和rpc的方式进行通信。把每个功能元素独立出来,把独立出来的功能元素动态组合,需要的功能元素采取组合。微服务架构是对功能元素进行赋值,而没有对整个应用进行复制。1.直接原创 2022-02-28 22:26:41 · 384 阅读 · 0 评论 -
SpringMVC 笔记整理
SpringMVCssm: mybatis+Spring+SpringMVCSpring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架。MVC: (Model View Controller )是一种软件设计规范;是将业务逻辑、数据、显示分离的方法来组织代码。MVC主要作用是降低了视图与业务逻辑间的双向耦合,MVC不是一种设计模式,是一种架构模式。Model:数据模型,提供要展示的数据可理解为JavaBean组件(包含数据和行为),也就是模原创 2022-02-22 15:45:06 · 131 阅读 · 0 评论 -
MyBatis笔记整理
MyBatis简介: 1.本是apache的一个开源项目iBatis,2010年这个项目迁移到了google code ,改名MyBatis,2013年迁移到Github; 2.MyBatis是一款优秀的持久层框架,支持定制化SQL,存储过程以及高级映射。几乎避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。 3.MyBatis可以使用简单的xml或注解来配置和映射原生类型,接口和java的POJO(Plain Old Java Objects)为数据库中的记录。如原创 2022-01-25 23:55:57 · 267 阅读 · 0 评论 -
代理模式及AOP整理
代理模式这是SpringAOP的底层!好处:1.使真实角色的操作更加纯粹,不用去关注一些公共业务2.公共业务交给代理角色,实现了业务的分工3.公共业务发生扩展的时候,方便集中管理缺点:一个真实角色就会产生一个代理角色;代码量会翻倍,开发效率会变低(解决办法动态代理 )代理模式的分类:1.静态代理【角色分析】抽象的角色:一般使用接口或者抽象类来解决真实角色:被代理的角色代理角色:代理真实角色,代理后,一般会做一些附属操作客户:访问代理对象的.原创 2022-01-23 23:22:10 · 488 阅读 · 0 评论 -
Spring整理笔记
Spring简介:Spring 框架以interface21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24日发布。Rod Johnson ,Spring Framework创始人,著名作者,他是悉尼大学的博士,然而他的专业不是计算机,而是音乐学。理念:使现有技术更加容易使用,本身是一个大杂烩,整合了现有的技术框架以前的框架:SSH : Struct2+Spring+HibernateSSM : SpringMvc + Spring+ Mybatis官方下原创 2022-01-22 23:11:03 · 200 阅读 · 0 评论 -
Stream API
java.util.stream 把真正的函数式编程风格引入到Java中。Stream是Java8中处理集合的关键抽象概念,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API对集合数据进行操作,就类似于使用SQL执行的数据库查询。也可以使用Stream API来并行执行操作。提供了一种高效且易于使用的处理数据的方式。为什么要用?1.数据源现在更多,有MongDB,Redis非关系型数据库等,需要java层面去处理2.Stream 和Collection 集合的区别 :Coll原创 2021-12-03 23:02:59 · 88 阅读 · 0 评论 -
MVC三层架构(Servlet至今)
JavaBean【实体类】:1.必须有一个无参构造 2.属性必须私有化 3.必须有对应的get/set 方法 。一般用来和数据库的字段做映射。表--对应类;字段--对应属性;行记录--对应对象;id name age address 1 jack 15 shanghai 2 rose 16 shanghai class Person{ private int id; private String name...原创 2021-11-19 23:02:22 · 203 阅读 · 0 评论 -
Session
服务器会给每一个用户(浏览器)创建一个Session对象 一个Session独占一个浏览器,只要浏览器没有关闭,这个Session就存在 用户登录之后,每个网站都可以访问-->保存用户的信息,购物车等信息 Session 和 Cookie的区别: Cookie是客户访问服务器的时候,服务器把用户的数据写给用户的浏览器,响应给客户端cookie,浏览器保存(可以保存多个),下次访问携带Cookie过去,服务端从请求中拿cookie【一个Cookie只能保存一个信息,...原创 2021-11-16 23:53:14 · 265 阅读 · 0 评论 -
java8新特性:Lambda 及 引用
Lambda表达式:是一个匿名函数,一段可以传递的代码(将代码像数据一样进行传递)语法格式一:无参无返回值 @Test public void test(){ Runnable r1=new Runnable(){ @Override public void run(){ System.out.println("haha"); } }; ...原创 2021-11-14 22:20:09 · 457 阅读 · 0 评论 -
MySQL索引优化实践!
为了提高数据查询效率,就像目录一样的存在!在MySQL中,索引是在存储引擎层实现的,所以并没有统一的索引标准,不同的存储引擎的索引工作方式并不一样。 常见模型 哈希表:哈希表是一种key-value存储数据的结构,只需要输入待查找的值key,就可以找到其对应的值value。运用方式:把值放在数组里,用哈希函数把key换成一个确定的位置,然后把value放在数组的这个位置,如果key值经过哈希函数的换算,会出现同一个值的情况,就会拉出一个........................原创 2021-08-13 16:51:54 · 197 阅读 · 0 评论 -
SQL底层执行原理
客户端——连接:客户端跟服务端建立连接,如果不指定engine=引擎,默认InnoDB,还有MyISAM和Memory;在完成经典的TCP握手之后,连接器就开始认证身份,客户端如果长时间没动静,连接器就会自动将它断开。wait_timeout默认8小时,长连接:如果客户端持续有请求,则一直使用同一个连接。短连接:每次执行完很少的几次查询就断开连接,下次查询再重新建立一个;1. 定期断开长连接。使用一段时间,或者程序里面判断执行过一个占用内存的............原创 2021-08-12 12:09:27 · 524 阅读 · 0 评论 -
Bean创建的生命周期
Bean是什么? 交由Spring自动管理的对象,都被称为Bean如何创建的?① class(xxx.class) :先识别带有@Component注解的类——》②推断构造法:如果类里有多个构造方法,Spring会去寻找谁是无参构造,如果有,就直接使用;没有就会报错,因为无法确定具体用哪个构造法【通过byType和byName去Spring的容器里去寻找所需要的参数】 ——》③实例化:识别到注解,基于此类对其进行实例化 ——》④得到对象——》⑤属性填充:判断对象...原创 2021-08-09 20:37:26 · 71 阅读 · 0 评论 -
部分设计模式
是什么?设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。设计模式存在的根本原因是为了更好地复用代码,增加代码可维护性设计模式分为:创建型模式、结构型模式和行为型模式创建型模式:用于描述“怎样创建对象”,它的主要特点是“将对象的创建与使用分离”工厂方法模式(普通工厂模式,就是建立一个工厂类,对实现了同...原创 2021-08-09 09:22:03 · 79 阅读 · 0 评论 -
面向对象设计 接口 抽象类
接口和抽象类是Java面向对象设计的两个基础机制。 接口:接口是对行为的抽象,它是抽象方法的集合,利用接口可以达到API定义和实现分离的目的。接口不能实例化,不能包含任何非常量成员,任何field(字段/成员变量)都是隐含着public static final的意义;同时没有非静态方法实现,要么是抽象方法,要么是静态方法【均无实际代码块{..}】。Java类使用implements来实现接口。 ——在java8以后,接口中可以添加使用default 修饰的方法(可以...原创 2021-08-05 17:47:56 · 244 阅读 · 0 评论 -
Java的文件拷贝方式&Buffer
1. 利用 java.io 类库,直接为源文件构建一个 FileInputStream 读取,然后再为目标文件构建一个 FileOutputStream,完成写入工作。2. 利用 java.nio 类库提供的 transferTo 或 transferFrom 方法实现。3. Java标准类java.nio.file.Files.copy提供了几种Files.copy的实现。对于 Copy 的效率,这个其实与操作系统和配置等情况相关,总体上来说,NIO的transferTo/...原创 2021-08-05 14:34:18 · 523 阅读 · 0 评论 -
网络IO流
是什么?流其实就是一系列的数据(分字节流字符流,其实计算机底层识别到的都是二进制数据)。IO流我理解为就是一系列数据在网络之间输入/输出相互交流传递的过程。现实的例子:张三想要从成都传送到北京;那么张三要先进行准备,去传送点,在传输的过程中,只能作为数据(具体怎么传送可以参考影视资料)传送到目的地的相应位置,由北京的那边的专业机构来接收他。在传送的准备-->传送-->接收 整个过程中,就是IO流的实现过程。原创 2021-08-04 22:00:42 · 1016 阅读 · 0 评论 -
AOP(Aspect Oriented Programing)简易用法
是什么?面向切面编程 是一种基于OOP之上的一种编程范式,弥补了OOP的不足,能更好的组织程序结构(OOP是面向对象编程,实际上是根据业务创建模型,基于模型展开业务开发,为了降低程序开发的复杂度,对OOP下的WEB程序进行了分层设计,例:控制层、业务层、持久层)。在不修改原有代码的情况下,对程序动态增强功能的一种技术,AOP可以把业务的功能步骤做成插拔式的组件(也叫“横向开发”),用这些组件定制新的功能,提高了业务的复用性,提高开发效率,使程序各部分的业务逻辑可以隔离开,达 到了解耦的目的...原创 2021-08-03 15:08:21 · 161 阅读 · 0 评论 -
Hashtable、HashMap、TreeMap的区别
是什么?(都是最常见的一些Map实现,是以键值对的方式存储和操作数据的容器类型)Map从狭义上来说,不属于(Collection)集合类型Hashtable (同步的)早期提供的一个哈希表实现,不支持null键和值,因为性能原因使用较少,扩展了Dictionary类,类结构上与HashMap之类明显不同。HashMap同Hashtable相似,不是同步的,支持null键和值。通常情况下,HashMap进行put、get操作,可以达到常数时间的性能,所以 HashMap 是绝大部分利用键值对存..原创 2021-08-02 19:15:12 · 606 阅读 · 0 评论