- 博客(45)
- 收藏
- 关注
原创 BIO、NIO、AIO
Java BIO 就是传统的 java io 编程,其相关的类和接口在 java.ioBIO(blocking I/O) : 同步阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,可以通过线程池机制改善(实现多个客户连接服务器). 在上述的案例中,一个服务端只能接收一个客户端的通信请求,那么如果服务端需要处理很多个客户端的消息通信请求应该如何处理呢 在上述案例中:客户端的并发访问增加时。
2025-01-16 22:47:34
1171
原创 【Java难点】多线程-终极
JMM(Java内存模型Java Memory Model,简称JMM)本身是一种抽象的概念并不真实存在它仅仅描述的是一组定或规范,通过这组规范定义了程序中(尤其是多线程)各个变量的读写访问方式,并决定一个线程对共享变量的写入何时可用,以及如何变成对另一个线程可见,关键技术点都是围绕多线程的原子性可见性和有序性展开的。添加volatile关键字后,JVM为什么会加入内存屏障?
2024-07-31 05:00:00
391
原创 Mysql笔记-20240718
存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,同一个数据库下的不同表可以选择不同的存储引擎,所以存储引擎也可被称为表类型。查看数据库所支持的存储引擎创建表时指定存储引擎id int,介绍索引(index)是帮助MySQL,高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。优缺点索引结构。
2024-07-18 00:22:55
1198
原创 Mysql笔记-v2【7月8日更新】
存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,同一个数据库下的不同表可以选择不同的存储引擎,所以存储引擎也可被称为表类型。查看数据库所支持的存储引擎创建表时指定存储引擎id int,介绍索引(index)是帮助MySQL,高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。优缺点索引结构。
2024-07-08 01:29:08
856
原创 Mysql笔记-v2【7月5日更新】
user 表的权限列包括 Select_priv、Insert_ priv 等以 priv 结尾的字段,这些字段值的数据类型为 ENUM,可取的值只有 Y 和 N:Y 表示该用户有对应的权限,N 表示该用户没有对应的权限。大多数版本的mysql数据库默认会常见匿名用户,一般情况下,匿名用户的名字为空,host为localhost,authentication_string为空,只有登录mysql的权限,没有其他任何权限。用户登录以后,MySQL 会根据这些权限表的内容为每个用户赋予相应的权限。
2024-07-05 01:59:28
735
原创 【RabbitMQ】使用手册
publisher:消息发送者comsumer:消息消费者queue:队列-存储消息exchange:交换机-接收发送者发送的消息,并将消息路由到与其绑定的队列virtual-host:虚拟主机-将数据隔离(多个项目使用同一个RabbitMQ时,可以为每个项目建立一个virtual-host,将不同项目之间的exchange和queue隔离)
2024-07-04 00:26:17
2098
1
原创 Mysql笔记-v2
db 表中的权限列和 user 表中的权限列大致相同,只是user 表中的权限是针对所有数据库的,而 db 表中的权限只针对指定的数据库。user 表的权限列包括 Select_priv、Insert_ priv 等以 priv 结尾的字段,这些字段值的数据类型为 ENUM,可取的值只有 Y 和 N:Y 表示该用户有对应的权限,N 表示该用户没有对应的权限。其作用域为当前连接(当前会话)。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表(称为基表),并且是在使用视图时动态生成的。
2024-07-04 00:25:44
1092
原创 【Java难点】多线程-高级
案例1和案例2一个对象里面如果有多个synchronized方法,某一个时刻内,只要一个线程去调用其中的一个synchronized方法了,其它的线程都只能等待,换句话说,某一个时刻内,只能有唯一的一个线程去访问这些synchronized方法,锁的是当前对象this,被锁定后,其它的线程都不能进入到当前对象的其它的 synchronized方法。案例3和案例4普通方法和同步锁无关,换成两个对象后,不是同一把锁了案例5和案例6。
2024-05-11 05:00:00
608
原创 【Java难点】多线程-终极【更新中...】
JMM(Java内存模型Java Memory Model,简称JMM)本身是一种抽象的概念并不真实存在它仅仅描述的是一组定或规范,通过这组规范定义了程序中(尤其是多线程)各个变量的读写访问方式,并决定一个线程对共享变量的写入何时可用,以及如何变成对另一个线程可见,关键技术点都是围绕多线程的原子性可见性和有序性展开的。添加volatile关键字后,JVM为什么会加入内存屏障?
2024-05-11 05:00:00
1986
原创 【Java难点】多线程-进阶
在Java8中,CompletableFuture提供了非常强大的Future的扩展功能,可以帮助我们简化异步编程的复杂性,并且提供了函数式编程的能力,可以通过回调的方式处理计算结果,也提供了转换和组合 CompletableFuture的方法。**注意:**get/join方法放在complete之后,get/join方法永远不会阻塞,因为异步任务如果没计算完,complete方法会将value给get/join方法,get/join方法获取的是value,不会发生阻塞;
2024-04-26 05:00:00
869
原创 【前端】什么是面包屑?
面包屑面包屑是网站导航中的一种可视化路径提示,通常以层次结构显示用户当前页面的位置,帮助用户了解他们在网站上的位置和浏览历史。这个术语来源于童话故事《汉赛尔与格莱特》中的面包屑小径,代表着一种追踪轨迹的方法。假设你在一个电子商务网站上搜索并点击了以下路径的商品:首页 > 服装 > 男装 > 外套在这个例子中,面包屑导航可能会以如下形式显示:首页 > 服装 > 男装 > 外套这样的面包屑就像一条路径,告诉你你是如何从网站的首页到达所浏览的特定外套商品页面的。面
2024-04-25 05:00:00
5722
3
原创 【MyBatis】使用手册
mybaits手册mybatis官网 https://blog.mybatis.org/中文文档:https://mybatis.org/mybatis-3/zh/getting-started.html一、mybatis连接mysql(普通maven工程)准备:数据库:mybatis_lesson表:useruser表的字段:id,name,age,phone_number1 新建maven工程2. pom.xml中添加mybatis和mysql驱动坐标<dependency
2024-04-24 23:10:37
1250
原创 【Java难点】多线程-初级
自定义线程池的7个参数:临时线程对象的最大数量=线程池中最大线程的数量-核心线程数量;空闲时间指的是临时线程对象多长时间没有工作,则会将临时线程对象销毁。来任务了需要先创建核心线程对象,核心线程对象都是工作状态,再来任务的话会进入核心线程的队列中等待,核心线程队列满了才会创建临时线程对象;线程执行顺序不是按照先来后到的规则,队伍里的线程会按照先来后到的规则执行等待核心线程执行,而队伍外的线程会使用临时线程执行;
2024-04-22 23:47:18
1054
原创 mybaits手册
mybaits手册mybatis官网 https://blog.mybatis.org/中文文档:https://mybatis.org/mybatis-3/zh/getting-started.html一、mybatis连接mysql(普通maven工程)准备:数据库:mybatis_lesson表:useruser表的字段:id,name,age,phone_number1 新建maven工程2. pom.xml中添加mybatis和mysql驱动坐标<dependency
2024-01-10 06:00:00
1897
原创 Spring注解驱动
自定义组件想要使用Spring底层的一些组件(ApplicationContext, BeanFactory, xxx)自定义组件实现xxxAware,在创建对象的时候,会调用接口规定的方法注入相关的Spring底层组件,xxxAware全都实现自Aware接口。xxxAware的功能,使用对应xxxProcessor来处理,如 ApplicationContextAware==>ApplicationContextAwareProcessor。案例创建自定义组件,实现xxxAware接口。
2024-01-10 05:00:00
1607
原创 【Java难点】内部类
在一个类里面再定义一个其他类,这个其他类就称为内部类。类的五大成员:属性、方法、构造方法、代码块、内部类。Outer是外部类,Inner是内部类,Other是外部其他类。
2024-01-05 06:00:00
1075
2
原创 【Java难点】泛型
JAVA推出泛型以前,程序员可以构建一个元素类型为Object的集合,该集合能够存储任意的数据类型对象,而在使用该集合的过程中,需要程序员明确知道存储每个元素的数据类型,否则很容易引发ClassCastException异常。修饰符 返回值类型 方法名(形参类型 形参) {方法体...修饰符与返回值中间非常重要,可以理解为声明此方法为泛型方法。只有声明了的方法才是泛型方法,泛型类中的使用了泛型的成员方法并不是泛型方法。
2024-01-03 22:26:07
926
1
原创 代理-java核心技术
代理模式(Proxy Pattern):是23种设计模式中的一种,属于结构型的模式。指一个对象本身不做实际的操作,而是通过其它对象来得到自己想得到的结果。意义:目标对象只需要关心自己的实现细节,通过代理对象来实现功能的增强,可以扩展目标对象的功能。体现了非常重要的编程思想:不能随便修改源码,如果需要修改源码,通过修改代理的方式来实现功能的拓展。概述:在不改变原有功能代码的前提下,能够动态的实现方法的增强代理类型实现机制回调方式使用场景效率JDK动态代理。
2023-12-26 06:00:00
66
原创 代理-java核心技术
代理模式(Proxy Pattern):是23种设计模式中的一种,属于结构型的模式。指一个对象本身不做实际的操作,而是通过其它对象来得到自己想得到的结果。意义:目标对象只需要关心自己的实现细节,通过代理对象来实现功能的增强,可以扩展目标对象的功能。体现了非常重要的编程思想:不能随便修改源码,如果需要修改源码,通过修改代理的方式来实现功能的拓展。概述:在不改变原有功能代码的前提下,能够动态的实现方法的增强代理类型实现机制回调方式使用场景效率JDK动态代理。
2023-12-26 01:30:10
47
原创 函数式编程
Lambda是JDK8中一个语法糖。他可以对某些匿名内部类的写法进行简化。它是函数式编程思想的一个重要体现。让我们不用关注是什么对象。而是更关注我们对数据进行了什么操作。 Java8的Stream使用的是函数式编程模式,如同它的名字一样,它可以被用来对集合或数组进行链状流式的操作。可以更方便的让我们对集合或数组操作。 我们在编写代码的时候出现最多的就是空指针异常。所以在很多情况下我们需要做各种非空的判断。if(author!=null){ 尤其是对象中的属性还是一个对象的情况下。
2023-12-25 21:06:46
103
1
原创 反射和注解
说明:属性类型:可以是任意的java类型,包括枚举类型属性名后面一定要加()public(可省略):注解属性的修饰符一定是public,所以可以省略publicdefault(可省略):default后面接默认值,可不写默认值。特殊属性value:如果注解中只有一个value属性,使用注解时,value名称可以不写!!如果注解中既有value属性,又有其他属性,且其他属性有默认值。使用注解时,如果其他属性使用默认值,则value名称也可以不写。
2023-12-25 01:49:41
72
原创 java: 错误:不支持的发行版本 x
编译器编译出来的Class文件高于JDK的版本,高版本的JDK能向下兼容以前版本的Class文件,但不能运行以后版本的Class文件。
2023-07-12 23:21:22
482
原创 Linux计划任务(at/crontab)
linux下的定时任务:一次性执行(at)、循环执行(crontab)cpu任务负载小于0.8时执行的后台任务:batch可唤醒关机期间的计划任务:anacron
2022-10-20 01:06:55
7696
原创 【超详细】阿里云CentOS7.9搭建FTP服务器,mysql+vsftpd虚拟用户实现ftp用户拥有不同权限
1.阿里云CentOS7.9搭建FTP服务器2.创建ftp服务器管理员:ftpadmin,权限为可创建、删除、修改、下载、上传目录和文件3.创建ftp服务器用户:ftpuser1,权限为仅下载文件、目录4.创建ftp服务器用户:ftpuser2,权限为仅上传文件、目录...
2022-07-24 04:31:22
3078
1
原创 使用maven创建项目后编译报错: java:程序包不存在, java:找不到符号
maven编译报错:java:程序包不存在java:找不到符号Error:(3, 30) java: 程序包com.alibaba.druid.pool不存在Error:(7, 5) java: 找不到符号 符号: 类 JdbcTemplate 位置: 类 dao.deleteError:(35, 18) java: 找不到符号 符号: 变量 DruidDataSourceFactory 位置: 类 util.JDBCUtilF:\untitled3\src\main\j
2020-05-25 14:48:13
2307
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人