- 博客(34)
- 资源 (9)
- 收藏
- 关注
原创 不可变对象
不可变对象需要满足的条件:对象创建以后其状态就不能修改对象所有域都是final类型对象是正确创建的(在对象创建期间,this引用没有逸出)final关键字:类、方法、变量修饰类:不能被继承,final修饰类的所有方法都被隐式修饰为fianl方法修饰方法:1、锁定方法不被继承类修改;2、效率修饰变量:基本数据类型变量(初始化后不能再修改),引用类型变量(初始化后不能再指向另外一个...
2019-09-30 18:29:32
259
原创 安全发布对象
发布对象:使一个对象能够被当前范围之外的代码所使用。对象逸出:一种错误的发布。当一个对象还没有构造完成,就使它被其他线程所见。发布对象的线程不安全示例:public class UnsafePublish { private String[] states = {"a","b","c"}; public String[] getStates(){ return...
2019-09-27 14:31:32
176
原创 Synchronized
Synchronized:可以在任意对象上加锁,而加锁的这段代码称为互斥区或临界区。public class SynchronizedDemo { /** * 线程不安全示例 */ class MyThread1 extends Thread{ private int count = 5; @Override ...
2019-09-26 22:37:42
171
原创 CPU多级缓存
cpu缓存存在的意义:cpu的频率太快,主存跟不上,这样在处理器的时钟周期里,cpu常常需要等待主存,导致资源的浪费。所以cpu缓存的出现就是为了缓解cpu和内存之间速度的不匹配问题。时间局部性:如果某个数据被访问,那么在不久的将来它很可能被再次访问。空间局部性:如果某个数据被访问,那么与它相邻的数据很快也可能被访问。缓存一致性(MESI):用于保证多个cpu cache之间缓存数据的一...
2019-09-18 00:35:55
358
原创 Java内存模型JMM
Java内存模型定义:为了屏蔽各种硬件和操作系统的内存访问差异,以保证java程序在各种平台下都能达到一致的并发效果。JMM规范:规定了一个线程如何、何时可以看到由其他线程修改过后的共享变量的值,以及在必须时如何同步地访问共享变量。java内存模型Heap:java中的堆,也就是运行时的数据区java内存模型:同步操作与规则...
2019-09-17 22:56:31
119
原创 进程与线程
在传统的操作系统中,程序并不能独立运行,作为资源分配和独立运行的基本单位都是进程。进程:计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。线程:是程序执行流的最小单位,是进程内一个相对独立的、可调度的执行单元。进程和线程的关系:线程和进程的区别和优劣:进程是资源分配的最小单位,线程是程序执行的最小单位进程自己的独立地址空间,...
2019-09-15 15:53:57
140
原创 设计模式(总结)
分类关注点创建型模式关注于对象的创建,同时隐藏创建逻辑结构型模式关注类和对象之间的组合行为型模式关注对象啊之间的通信创建型模式:单例模式保证一个类只有一个实例,并提供全局的一个访问点。结构型模式:装饰器模式装饰器动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有效弹性的替代方案。适配器模式适配器模式将一个类的接口,转换成客...
2019-09-10 23:46:16
150
原创 设计模式(四):代理模式和责任链模式
代理模式代理模式为另一个对象提供一个替身或者占位符以控制对这个对象的访问/** * 静态代理 */public class StaticProxyDemo { /** * 方法接口 */ interface Method{ void show(String str); } class MethodDemo implem...
2019-09-03 15:27:15
504
原创 设计模式(三):模版方法、外观模式
模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。/** * 模版方法 */public class TemplateMethodDemo { abstract class TemplateMethod{ //钩子的开关 boolean needBeforeD...
2019-09-02 10:49:09
149
原创 设计模式(二):适配器模式、单例模式和工厂模式
适配器适配器模式适用于解决不同接口或不同系统间的兼容问题,想要修改旧系统的接口时应优先考虑使用适配器模式下面是一个音乐播放器的例子/** * 适配器模式 */public class Adapter { /** * 新定义的接口 */ interface MyMusicPlayer{ void play(String type,Str...
2019-09-01 17:44:32
318
原创 设计模式(一):策略者、装饰者、观察者
策略者模式使用背景:当写好代码打包发布给别人使用时,别人如果需要对代码进行扩展,传统类封装的方式就显得十分不方便。这时策略者模式就闪亮登场了,因为策略者模式遵循开闭原则:对修改关闭,对扩展开放。下面是一个计算器使用策略者模式实现的例子public class Strategy { /** * 操作接口 */ interface Operation{ ...
2019-08-30 14:11:00
187
原创 Linux启动tomcat显示端口被占用
SpringBoot启动报错:org.apache.catalina.LifecycleException: Protocol handler start failed查看报错信息显示:Description:The Tomcat connector configured to listen on port 8080 failed to start. The port may alre...
2019-08-29 22:08:19
3297
原创 与区间有关的算法题
435. 无重叠区间先通过重写Comparator()使得数组按每个区间的结尾进行升序排序(每个区间的结尾越小后面能存放的区间就越多)计算最多能组成不重叠区间的区间数再用总区间数一减即问题所求的解 public static int eraseOverlapIntervals(int[][] intervals) { if (intervals == null || in...
2019-08-25 22:32:46
773
原创 idea常用的快捷键
idea常用的快捷键Alt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L 格式化代码Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如get,set方法,构造函数等)Ctrl+E或者Alt+Shift+C 最近更改的代码Ctrl+R 替换文本Ctrl+F 查找文本Ctrl+Shift+Space ...
2019-06-24 14:55:06
88
原创 SpringAOP学习笔记
什么是AOP简单的说它就是把我们程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础上,对我们的已有方法进行增强。AOP 的作用及优势作用:在程序运行期间,不修改源码对已有方法进行增强。优势:减少重复代码提高开发效率维护方便AOP的实现动态代理技术基于接口的动态代理提供者:JDK 官方的 Proxy 类。要求:被代理类最少实现一个接口。基于子类...
2019-06-23 17:56:22
115
原创 动态代理
动态代理动态代理:特点:字节码随用随创建,随用随加载作用:不修改源码的基础上对方法增强分类:基于接口的动态代理基于子类的动态代理基于接口的动态代理涉及的类:Proxy提供者:JDK官方如何创建代理对象:使用Proxy类中的newProxyInstance方法创建代理对象的要求:被代理类最少实现一个接口,如果没有则不能使用newProxyInstance方法的参数:Cl...
2019-06-22 23:13:56
226
原创 SpringIOC学习笔记
Spring环境配置在maven工程中导入spring的jar包 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <ve...
2019-06-21 23:31:38
150
原创 力扣46和60
力扣46:给定一个没有重复数字的序列,返回其所有可能的全排列思路:递归解决每次排列前一个都是和后一个数交换交换到最后一位时存入lists中 public static void dfs(List<List<Integer>> lists, int[] nums, int n) { if (n == nums.length) { ...
2019-06-16 10:52:33
317
原创 Mybatis学习笔记
mybatis概述:框架:框架的重要性在于它实现了部分功能,并且能够很好的将低层应用平台和高层业务逻辑进行了缓和。为了实现软件工程中的“高内聚、低耦合”。把问题划分开来各个解决,易于控制,易于延展,易于分配资源。我们常见的 MVC 软件设计思想就是很好的分层思想。mybatis:mybatis是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使开发者只需要关注 sql语句本身,...
2019-06-02 11:36:48
115
原创 ArrayList和Vector
public class ArrayListDemo{ private int[] ints; private int size = 0; //初始化数组 public ArrayListDemo() {this(10);} public ArrayListDemo(int initialCapacity) {ints = new int[initialCa...
2019-05-21 20:08:26
86
转载 sql面试题
1.用一条SQL 语句 查询出每门课都大于80 分的学生姓名name kecheng fenshu张三 语文 81张三 数学 75李四 语文 76李四 数学 90王五 语文 81王五 数学 100王五 英语 ...
2019-05-04 22:22:12
115
原创 Bootstrap学习笔记
引入Bootstrap:<!DOCTYPE html><html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewpo...
2019-04-15 22:03:58
112
原创 JavaScript学习笔记(二)
JavaScript的对象:Function:创建:1. var 方法名= new Function(形参,方法体) 2. function 方法名(形参){方法体} 3. var 方法名 = function (形参){方法体}方法:方法名(实参) 在JavaScript中方法调用只和方法名有关,与传入参数无关 同名方法会被覆盖方法的返回值类型也可以不定义 在方...
2019-04-14 19:31:43
156
原创 小哼买书
小哼的学校要建立一个图书角,老师派小哼去找一些同学做调查,看看同学们都喜欢读哪些书。小哼让每个同学写出一个自己最想读的书的 ISBN 号(你知道吗?每本书都有唯一的 ISBN 号,不信的话你去找本书翻到背面看看)。当然有一些好书会有很多同学都喜欢,这样就会收集到很多重复的 ISBN 号。小哼需要去掉其中重复的 ISBN 号,即每个 ISBN 号只保留一个,也就说同样的书只买一本(学校真是够抠门的)...
2019-04-13 20:58:05
240
原创 99乘法表JavaScript实现
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>99乘法表</title> <script> document.write("<p align='center'>九九乘法...
2019-04-13 20:56:27
2734
原创 JavaScript学习笔记(一)
JavaScript概念:一门脚本语言,能被浏览器直接解析执行,运行在客户端浏览器中的,每个浏览器都有JavaScript的解析引擎JavaScript = ECMAScript + JavaScript自己特有的东西(BOM+DOM)与html结合方式内部JS 定义<script> 标签内容就是js代码外部JS 通过src属性引入外部的js文件单行注释...
2019-04-13 19:41:02
109
原创 JDBC学习笔记(二)
JDBC控制事务:事务:一个包含多个步骤的业务操作。如果这个业务操作被事务管理,则要么多个步骤同时成功,要么同时失败。操作:1.开启事务 2.提交事务 3. 回滚事务使用Connection对象管理事务try { //开启事务 conn.setAutoCommit(false); 需要事务管理的操作 ...
2019-04-10 19:11:27
99
原创 关于c3p0报错:An attempt by a client to checkout a Connection has timed out.
四月 09, 2019 4:37:15 下午 com.mchange.v2.log.MLog 信息: MLog clients using java 1.4+ standard logging.四月 09, 2019 4:37:16 下午 com.mchange.v2.c3p0.C3P0Registry 信息: Initializing c3p0-0.9.5.2 [built 08-Dece...
2019-04-09 16:46:10
1834
原创 JDBC学习笔记(一)
1. 概念:Java DataBase Connectivity Java数据库连接 , Java语言操作数据库JDBC本质:其实就是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类2. 使用步骤:public static void m...
2019-04-07 21:23:55
160
原创 mysqldump: unknown option '--no-beep' 错误解决方法
使用命令行对数据库进行备份时的产生错误的解决办法解决办法有三:第一种方法:删除my.ini [client]下的 no-beep 参数;第二种方法:在 mysqldump 后加–no-defaults参数mysqldump --no-defaults -u用户名 -p密码 数据库名称 > 备份文件保存的位置 //xxx.sql 第三种方法:使用mysql直接备份mysq...
2019-04-05 23:03:02
4118
1
原创 数据库学习笔记
什么是SQL:结构化查询语言其实就是定义了操作所有关系型数据库的规则SQL通用语法SQL语句可以单行或多行书写,以分号结尾可使用空格和缩进来增强语句的连续性MYSQL数据库的SQL语句不区分大小写,关键字建议使用大写。3种注释单行注释:–注释内容 或 注释内容(mysql 特有)多行注释:/注释/操作数据库1.创建数据库create database 数据库名称;判断...
2019-04-02 21:55:25
122
apache-maven-3.6.3-bin
2020-09-15
不可变对象ImmutableXXX:Collection、List、Set、Map…
2019-09-30
c3p0与jdbc相匹配的jar包
2019-04-10
c3p0及jdbc的jar包
2019-04-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人