- 博客(55)
- 收藏
- 关注
原创 设计模式 | 单例模式
设计模式 | 单例模式1.核心作用2.常见场景3.单例模式的优点4.常见的五种单例模式实现方式4.1 饿汉式4.2 懒汉式4.3 DCL懒汉式(双重检测锁模式)4.4 静态内部类4.5 枚举单例5.五种实现单例模式的方式的对比1.核心作用保证一个类只有一个实例,提供一个访问该实例的全局访问点。2.常见场景3.单例模式的优点4.常见的五种单例模式实现方式4.1 饿汉式步骤:私有化构造器类初始化时,立即加载对象【不涉及线程安全问题】提供获取该对象的方法【没有Synchronized,
2020-07-19 12:50:24
156
原创 JavaEE | 线程安全(锁、线程间通信、内存可见性、CAS、线程的状态)
JavaEE | 线程安全(锁、线程间通信、内存可见性、CAS、线程的状态)1.案例与线程安全1.1 两种方式模拟电影院售票1.2 买电影票出现了同票和负数票的原因分析2. 保证线程安全之synchronized2.1 概述2.2 同步代码块2.3 同步方法2.4 静态同步方法2.5 锁小结2.6 线程安全的类3. 保证线程安全之Lock锁4. 死锁5 生产者-消费者问题5.1线程间通信5.2 等待唤醒机制与示例6 内存可见性6.1 volatile 关键字6.2 CSA算法与AtomicInteger关键
2020-07-18 21:56:07
492
原创 JavaEE | 多线程基础
JavaEE | 多线程基础1 多线程与多进程1.1 进程1.2 线程1.3 线程与进程1.4 并行和并发1.5 JVM的启动是多线程的2 多线程实现的三种方式2.1 方式一:继承Thread类2.1.1 实现步骤2.1.2 实例2.2 方式二:Runnable接口 (避免单继承的局限性,run方法没有返回值)2.2.1 实现步骤2.2.2 实例2.3 方式三:Callable 接口(call方法有返回值)2.3.1 实现步骤2.2.2 实例3 线程的设置3.1 获取和设置线程对象名称3.2 线程调度与线
2020-07-18 20:48:18
440
原创 JavaEE | 集合之HashMap与ConcurrentHashMap(看完多线程后补充)
HashMap1 HashMap1.1 JDK 1.7:数组(table)+链表(Entry)1.2 JDK1.8:数组(table)+链表(Node)+红黑树2 ConcurrentHashMap(看完多线程后补充)1 HashMap1.1 JDK 1.7:数组(table)+链表(Entry)HashMap中的核心成员:初始化桶的大小:默认2^4=16;桶最大值:2^30负载因子:0.75这里的负载因子指的是,当HashMap中的元素达到(160.75 = 12)时,就会自动扩容,默认
2020-07-17 10:57:01
200
原创 JavaEE | 基本类型包装类
JavaEE | 基本类型包装类1.引入原因2.基本类型与包装类型的对应关系3.常用操作3.1 基本数据类型 <==> 包装类型3.1.1 基本数据类型-> 包装类型3.1.2 包装类型 -> 基本数据类型3.2 基本数据类型 <==> String (都使用静态方法)3.2.1 String -> 基本类型3.2.2 基本类型-> String1.引入原因int,char,double等四类八种基本类型不是对象,无法直接调用方法对基本类型进行判断,因此
2020-07-16 10:04:34
132
转载 Java | Comparable接口和Comparator接口比较
Comparable接口和Comparator接口的比较:https://baijiahao.baidu.com/s?id=1652248417256209703&wfr=spider&for=pc
2020-07-14 22:17:17
86
原创 JavaEE | 语言基础部分、对象与类
1 Java语言基础1.1 Java语言特点 简单性 解释性 面向对象 高性能 分布式处理 多线程 健壮性 多态 结构中立 安全性 开源 跨平台1.2 Java语言跨平台原理java的跨平台指的是java编写的程序可以在不同的平台上运行java跨平台的前提是平台上安装了JVM(java虚拟机,Java Virtual Machine),JVM控制java程序在不同平台上的运行,不同平台上的JVM是不同的。JAVA语言是跨平台的,而JVM不是跨平台的。1.
2020-07-10 17:29:20
140
原创 JavaEE | 可变参数
JavaEE | 可变参数可变参数概述: 定义方法的时候不知道该定义多少个参数格式: 修饰符 返回值类型 方法名(数据类型… 变量名){}注意事项:这里的变量其实是一个数组如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个示例:public class MyTest2 { public static void main(String[] args) { //可变参数 int sum=add(1,2);
2020-05-24 14:43:09
100
原创 JavaEE | 增强for循环
JavaEE | 增强for循环增强for概述:简化数组和Collection集合的遍历格式:for(元素数据类型 变量 : 数组或者Collection集合) {使用变量即可,该变量就是元素}注意:使用增强for循环时,不可以在循环过程中增减数组或者集合,否则会报并发修改异常的错误;如果一定要增减元素,用传统的for循环即可。...
2020-05-24 14:37:31
195
原创 JavaEE | 泛型
JavaEE | 泛型1.泛型简介2. 使用举例3.通配符1.泛型简介泛型概述:是一种把类型明确的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型。这是一种参数化类型,即把类型当作参数一样的传递。泛型格式 : <数据类型> 这里的数据类型只能是引用数据类型使用范围:泛型可以加在接口上,类型上,方法上泛型好处:(1): 把运行时期的问题提前到了编译期间(2): 避免了强制类型转换,向下转型(3):优化了程序设计,解决了黄色警告线注意:泛型只在编译期有效 但在运行期就擦
2020-05-24 12:20:24
153
原创 SSM | SpringMVC
SSM | SpringMVC1.回顾MVC1.1什么是MVC1.2 Model1时代1.3 Model2时代1.41.回顾MVC1.1什么是MVCMVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。是将业务逻辑、数据、显示分离的方法来组织代码。MVC主要作用是降低了视图与业务逻辑间的双向偶合。MVC不是一种设计模式,MVC是一种架...
2019-10-24 18:11:00
929
原创 SSM | Spring
SSM | Spring11.Spring介绍1.1 简介1.2 优缺点1.3 组成1.4 拓展2.IOC理论推导3.HelloSpring4.IOC创建对象的方式5.Spring配置6.依赖注入7.Bean的自动装配8.使用注解开发9.使用Java的方式配置Spring1.Spring介绍1.1 简介Spring:给软件行业带来了春天!2002,首次推出了Spring框架的雏形:...
2019-10-18 00:05:15
1031
原创 SSM | Mybatis2(缺缓存部分)
SSM | Mybatis21.日志2.分页2.1 Limit分页2.2 RowBounds分页2.3 分页插件3.使用注解开发3.1 面向接口编程3.2 使用注解开发3.3 CRUD示例4.多表查询4.1 多对一查询4.1.1 按照查询嵌套4.1.2 按照结果嵌套4.2 一堆多查询4.2.1 按照查询嵌套4.2.2 按照结果嵌套5.动态SQL5.1 if语句5.2 choose (when, o...
2019-10-08 23:52:53
129
原创 leetcode | 回文数
题目描述:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。难度:简单回文数处理思路:方法1:字符串处理方法2:数学方法处理上图的直接返回false的分析: 特殊情况: 如上所述,当 x < 0 时,x 不是回文数。 同样地,如果数字的最后一位是 0,为了使该数字为回文, 则其第一位数字也应...
2019-10-08 00:10:20
99
原创 leetcode | 整数反转
题目描述:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。难度:简单补充知识:1.负数的取余和取商先确定余数,再确定商。余数的准则是商的绝对值尽量靠近0举例:除数被除数余数模值分析-32110-32-1-321=10*(-32)-1-321-1032-1-321=(-10)*32-1321-10-32...
2019-10-07 00:09:44
94
原创 JavaWeb | 阶段总结
JavaWeb | 小结1.知识点总结2.学习方法总结3.目前存在的问题1.知识点总结2.学习方法总结总结的能力:学习的时候,抓住重点,记住思路。3.目前存在的问题前端基础知识JavaEE的部分知识回顾:反射多线程数据结构...
2019-10-03 22:55:14
105
原创 Mybatis| Bug合集
Mybatis| Bug合集1. 增删改的代码不报错,但就是无法写入到数据库中1. 增删改的代码不报错,但就是无法写入到数据库中原因:没有提交方法1:设置自动提交(在生成sqlSession时,就设置自动提交true)方法2:手动提交sqlSession.commit();...
2019-10-02 16:12:38
448
1
原创 Java | 仓库管理系统demo
Java | 超市管理系统demo1.系统功能简介2. 项目搭建2.1 搭建一个maven web项目2.2 配置Tomcat2.3 启动Tomcat,测试项目是否能正常启动2.4 导入项目中会用到的依赖2.5 创建项目包结构2.6 编写实体类,即ORM映射:表-类映射2.7 编写基础公共类(BaseDao),实现与操作数据库相关的功能:2.8 编写字符编码过滤器,,解决字符乱码问题3. 登录...
2019-09-27 21:09:14
3404
1
原创 JavaWeb | Ajax
JavaWeb | Ajax 1. 简介2. 作用3.伪实现4.实现1. 简介AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。Ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。在 2005 年,Goo...
2019-09-20 15:10:34
103
原创 JavaWeb | 过滤器与监听器
JavaWeb | 过滤器与监听器1.过滤器2.监听器3.过滤器、监听器常见应用3.1 GUI与监听器的小案例(空)3.2 用户登录1.过滤器过滤器和Servlet一毛一样,都只要实现一个接口(Filter),然后完成过滤功能即可。Filter(过滤器):用来过滤网站的数据。其作用是:处理中文乱码登录验证….Filter开发步骤:导包<dependencies>...
2019-09-19 18:54:27
78
原创 MVC三层架构
JavaWeb | MVC三层架构1. MVC简介2. 原始的架构3. MVC三层架构1. MVC简介什么是MVC: Model view Controller 模型、视图、控制器2. 原始的架构最开始的时候,用户直接访问控制层,控制层就可以直接操作数据库。servlet–>CRUD–>数据库的结构有如下弊端:弊端:程序十分臃肿,不利于维护 。因为在这...
2019-09-19 12:14:22
144
原创 JavaWeb | Servlet之Cookie、Session
JavaWeb | Servlet之Cookie、Session1.会话2.保存会话的两种技术3.Cookie3.1 Cookie原理3.2 用cookie保存用户上一次访问时间的示例4.Session4.1 原理4.2 用Session保存用户上一次访问记录的示例1.会话会话:用户打开一个浏览器,点击了很多超链接,访问多个web资源,关闭浏览器,这个过程可以称之为会话。有状态会话:用户打开...
2019-09-17 15:16:34
139
原创 JavaWeb | Servlet基础
JavaWeb | Servlet1.Servlet简介2 Servlet实现类3 Servlet创建451.Servlet简介Servlet就是sun公司开发动态web的一门技术Sun在这些API中提供一个接口叫做:Servlet,如果你想开发一个Servlet程序,只需要完成两个小步骤:编写一个类,实现Servlet接口把开发好的Java类部署到web服务器中。按照约定...
2019-09-13 00:12:03
106
原创 JavaWeb | Maven
JavaWeb| Maven1. Maven 简介2. 下载安装Maven3. 配置环境变量4. 阿里云镜像5. 建立本地仓库6. 在IDEA中使用Maven7.创建一个普通的Maven项目8. 标记文件夹的方法9 pom文件10 IDEA中,Maven仓库结构和Jar包关联图11 Maven仓库的使用12 可能遇到的问题12.1 手写的配置文件,无法被导出或者生效12.2 IDEA中每次都要重复...
2019-09-11 23:51:14
128
原创 JavaWeb |Web简介、Tomcat安装与配置、Http协议
JavaWeb||Web简介、Tomcat安装与配置1.Web的基本概念1.1 静态web与动态Web的区别1.2 web应用程序1.3 静态web1.4 动态web2.web服务器2.1 技术讲解2.2 web服务器2.32.41.Web的基本概念1.1 静态web与动态Web的区别静态webhtml,css提供给所有人看的数据始终不会发生变化!动态web淘宝,几乎所...
2019-09-11 00:33:07
165
原创 MySQL|数据库简介、基本的增删改查操作
MySQL|数据库简介与SQL1.数据库简介2.软件的安装与卸载2.1 Mysql2.1.1 卸载步骤:2.1.2 与数据库使用相关的命令:2.1.3 修改mysql的密码步骤:3 SQL:结构化查询语言3.1 DDL:操作数据库和表3.2 DML:操作表中的数据3.3 DQL:查询表中的数据1.数据库简介数据库(DataBase,简称DB)概念:长期存放在计算机内,有组织,可共享的大量数...
2019-08-21 23:35:25
367
原创 BUG| java: 无效的源发行版: 11
BUG描述今天运行IDEA代码时,程序报错:Error:java: 无效的源发行版: 11解决办法在Project Structure中,选择Project中,按图示内容修改。参考来源参考https://www.liangzl.com/get-article-detail-131047.html...
2019-08-13 21:47:37
106
原创 Java|Stream API
Java|Stream API1 Stream API 概述1.1 Stream API1.2 流(Stream)1.3 Stream 的操作三个步骤2.创建Stream的方式2.1 Collection 的方法2.2 Arrays 的静态方法2.3 Stream 的静态方法2.4 创建无限流3.Stream 的中间操作3.1 筛选与切片3.2 映射3.3 排序4.Stream 的终止操作4.1...
2019-08-06 00:18:05
89
原创 Java | Lambda表达式
Java|Lambda表达式1.Lambda表达式概述2.Lambda表达式的书写语法3.函数式接口4.Lambda表达式作为参数传递的示例5.方法引用6.构造器引用1.Lambda表达式概述Lambda 是一个匿名函数,我们可以把 Lambda表达式理解为匿名内部类的一种简写方式。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。引入示例:我们...
2019-08-05 17:33:55
431
1
原创 Java|枚举
Java|枚举1.使用枚举的注意事项2.枚举类的常见方法2.示例2.1 枚举用于空参构造 枚举用于switch语句2.2 枚举用于有参构造2.3 枚举用于抽象方法1.使用枚举的注意事项定义枚举类要用关键字enum枚举类的第一行上必须是枚举项,最后一个枚举项后的分号是可以省略的,但是如果枚举类有其他的东西,这个分号就不能省略。建议不要省略。枚举类可以有构造器,但必须是private的,它...
2019-08-05 11:56:16
239
原创 Java|反射机制与动态代理
Java|反射机制1.类的加载概述与概述1.1 类的加载概述1.2 类的加载时机1.类的加载概述与概述1.1 类的加载概述当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化。加载就是指将class文件读入内存,并为之创建一个Class对象。任何类被使用时系统都会建立一个Class对象。连接a) 验证 : 是否有正确的...
2019-08-05 10:51:57
95
原创 Java|网络编程
Java|网络编程1.网络编程概述2.网络编程三要素3.网络编程三要素之IP3.1 IP概述3.2 IP地址的组成3.3 IP地址分类3.4 InetAddress类4.网络编程三要素之端口5.网络编程三要素之协议6.Socket套接字7.使用UDP协议进行通信7.1 UDP协议使用到的类7.2 几个案例7.2.1 简单的UDP协议发送与接收数据7.2.2 UDP协议发送端的数据来自于键盘录入7....
2019-08-02 01:13:59
421
原创 JavaEE | 集合1之Collection
Java|集合之Collection集合类简介-1.1 集合类的由来-1.2 数组和集合的区别Collection集合-2.1 功能概述-2.2 集合Collection的遍历1. 集合类简介1.1 集合类的由来面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,Java就提供了集合类。1.2 数组和集合的区别1 :长度区别数组的长度是固定...
2019-07-26 00:09:48
446
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人