- 博客(12)
- 收藏
- 关注
原创 jvm-5-高效并发
五.高效并发5.1 java内存模型与线程java虚拟机规范中定义了一种内存模型,来屏蔽调各种硬件和操作系统的内存访问差异,以实现在各种操作平台内存访问的一致性。5.1.1 java内存模型这里有 “主内存”和“工作内存”的概念,和硬件中的主存、高速缓存类似,线程间变量值的传递均需要通过主存来完成,它和java内存模型的堆栈方法区基本没有关系,如果勉强对应一下,主内存->堆,工作内...
2020-02-13 11:33:26
148
原创 jvm-3-虚拟机执行子系统
三.虚拟机执行子系统3.1 类文件结构3.2 虚拟机类加载机制3.2.1 类的生命周期加载->验证->准备->解析->初始化->使用->卸载加载:是“类加载”过程的一个阶段,完成3件事,(1)通过全限定名获取二进制字节流(2)将这个字节流代表的静态存储结构转化为方法区的运行时存储结构(3)在内存中生成代表这个类的对象,作为方法区这个类的各种数据的访问...
2020-02-13 11:31:52
152
原创 jvm-2-自动内存管理机制
二:自动内存管理机制2.1 java内存区域与内存溢出异常2.2 垃圾收集器与内存分配策略2.2.1 判断对象是否存活算法1 引用计数法:优点是:简单高效,在大部分情况下是一个比较不错的算法。缺点是:它无法解决对象之间的循环引用问题。引用计数法只关注计数器的值是否为0,故有此缺点。2. 可达性算法基本思想是:通过一系列成为"GC Root" 的对象作为起始点,从这些节点开始乡下搜索,...
2020-02-13 11:30:39
143
原创 java8新特性 梳理
lambda表达式的出现,简单来看是为了简化匿名内部类繁琐的代码,而匿名内部类的结构是:有个接口,接口中有个方法,通过匿名内部类的方式实现该方法,至此匿名内部类完成。匿名内部类本身的目的也是简化代码,如果不用匿名内部类,你需要新建个一个类,然后去实现这个接口,再实现方法,这样更加繁琐。基于此java8新增了lambda表达式,可以简化匿名内部类实现方式的繁琐,但是它的作用和匿名内部类是一样的,...
2019-11-21 14:18:35
129
原创 ORM简单介绍
jdbc:java数据库连接,jdbc是一个标准,提供统一的数据库访问(API),由个数据库厂商各自实现。使用jdbc操作数据库步骤:1.注册驱动2.获取连接3.通过连接创建一个statement对象4.通过statement对象执行sql,返回一个ResultSet(结果集)5.通过结果集获取数据,转为POJO6.关闭各种连接由于每次访问数据库都得执行同样的操作,故出现各种框架对...
2019-09-26 10:01:45
313
转载 mysql 数据类型总结
mysql 数据类型总结一.数值类型Mysql支持所有标准SQL中的数值类型,其中包括严格数据类型(INTEGER,SMALLINT,DECIMAL,NUMBERIC),以及近似数值数据类型(FLOAT,REAL,DOUBLE PRESISION),并在此基础上进行扩展。扩展后增加了TINYINT,MEDIUMINT,BIGINT这3种长度不同的整形,并增加了BIT类型,用来存放位数据。整...
2019-09-25 10:02:42
163
原创 使用docker-compose.yml启动mysql8时遇到的问题解决
原配置version: '3.1'services: mysql: restart: always image: mysql container_name: mysql ports: - 3306:3306 environment: TZ: Asia/Shanghai MYSQL_ROOT_PASSWORD: 12...
2019-08-10 17:57:21
2666
原创 动态代理个人理解
动态代理个人理解首先为什么要用动态代理?动态代理是设计模式中的代理模式:定义:为其它对象提供一种代理以控制对这个对象的访问控制;在某些情况下,客户不想或者不能直接引用另一个对象,这时候代理对象可以在客户端和目标对象之间起到中介的作用。动态代理的作用主要用来做方法的增强,让你可以在不修改源码(指愿方法)的情况下,增强一些方法,在方法执行前后做任何你想做的事情(甚至根本不去执行这个方...
2019-06-19 15:06:22
134
原创 mysql索引小结
mysql索引小结重点多个单列索引在多条件查询时只会生效第一个索引!所以多条件联合查询时最好建联合索引!最左前缀原则顾名思义是最左优先,以最左边的为起点任何连续的索引都能匹配上,注:如果第一个字段是范围查询需要单独建一个索引注:在创建联合索引时,要根据业务需求,where子句中使用最频繁的一列放在最左边。这样的话扩展性较好,比如 userid 经常需要作为查询条件,而 mobile 不...
2019-06-19 11:26:54
904
原创 关于git rebase(变基) 的使用
关于git rebase(变基) 的使用rebase的作用有2个:可以使本地的多次提交记录合并为一个(历史简洁)。可以使开发分支更新为最新(既合并此开发分支的来源分支上的最新修改,或者是要合并的目标分支已发生变更,此时需要跟新被人已提交的修改到开发分支上),避免开发分支合并到master或其他公共分支上时造成的提交记录开叉混乱。背景:在dev分支上做3次提交记录,然后此时t1分支有别人...
2019-06-19 11:07:50
254
原创 关于git回退的命令详解
关于git回退的命令详解git reset[--soft] HEAD~撤销上一次的git commit 命令 ,回到HEAD~(HEAD的父节点),并且不会改变索引(index)和工作目录。git reset [--mixed] HEAD~撤销上一次的 git commit 命令 ,回到HEAD~(HEAD的父节点),与soft不同的是,他会取消index(暂存区)的东西,彻底回到git ...
2019-06-19 11:02:08
475
原创 事务小总结
事务的四大特性原子性(atomicity):一个事务必须视为一个不可分割的最小工作单元,整个事务中的而所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性。一致性(consistency):数据库总数从一个一致性的状态转换为另一个一致性的状态。隔离性(isolation):一个事物提交,则其所做的修改就会永远保存到数据库中,此时即使...
2019-06-19 10:58:50
192
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人