张静怡

可怕的不是比你强的人,而是比你强的人比你更努力

【Java并发编程之深入理解】Synchronized的使用

1.为什么要使用synchronized 在并发编程中存在线程安全问题,主要原因有:1.存在共享数据 2.多线程共同操作共享数据。关键字synchronized可以保证在同一时刻,只有一个线程可以执行某个方法或某个代码块,同时synchronized可以保证一个线程的变化可见(可见性),即可以...

2018-09-08 20:56:16

阅读数 173

评论数 0

【java基础】Nio

阻塞:相对于数据而言,需要一直等待数据准备好才能进行下一步操作(BIO,accept) 非阻塞:不管数据有没有准备好都可以往下执行下一步逻辑 同步:相对于IO操作而言,在某个时间点只发生了一件事情,在IO读写操作的过程中不能再做别的事情 异步:相对于IO操作而言,在某个时间点发生了很多事情,...

2018-08-26 20:31:49

阅读数 881

评论数 3

【JVM】内存模型

线程共享:方法区、堆 线程独享:虚拟机栈、本地方法栈、程序计数器 方法区: 方法区在一个jvm实例的内部,类型信息被存储在一个称为方法区的内存逻辑区中。类型信息是由类加载器在类加载时从类文件中提取出来的。类(静态)变量也存储在方法区中。 简单说方法区用来存储类型的元数据信息,一...

2018-08-22 10:12:18

阅读数 89

评论数 2

【MySQL】-索引优化

优化口诀: 全值匹配我最爱,最左前缀要遵守; 带头大哥不能死,中间兄弟不能断; 索引列上少计算,范围之后全失效; Like百分写最右,覆盖索引不写星; 不等空值还有or,索引失效要少用; VAR引号不可丢,SQL高级也不难!     “全值匹配我最爱”   “带头大哥不能...

2018-08-18 20:24:18

阅读数 277

评论数 2

【MySQL】-索引

什么是索引? 排好序的快速查找数据结构 目的: 提高查找效率 在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结枘以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。下图就是一种可能的索引方式示例: 左边是数据表,一共...

2018-08-16 09:12:36

阅读数 93

评论数 3

【Java多线程】synchronized-锁重入

1.什么是锁重入? 在使用synchronized时,当一个线程得到一个对象锁后,再次请求此对象锁时是可以再次得到该对象的锁的。这也证明在一个synchronizes方法/块的内部调用本类的其他synchronized方法/块时,也是 永远可以得到锁的。 public class SyncDu...

2018-06-03 17:55:22

阅读数 323

评论数 1

【Java多线程】单例模式与多线程

单例模式大家都不陌生,即让一个类只有一个实例。 单例模式分为懒汉式和饿汉式。 懒汉式☞方法调用时再实例化对象,什么时候用什么时候实例化,比较懒。 饿汉式☞方法调用前对象就已经创建好了,比较有捉急。 本文着重描述懒汉式与多线程的内容。 1.饿汉式 public class...

2018-05-28 16:44:08

阅读数 353

评论数 23

【Java多线程】queue

队列,从一端进从另一端出 我们用put和take方法可以模拟 put:像队列中放元素,把Object加到BlockingQueue里,如果BlockingQueue没有空间,则调用此方法的线程被阻断 take:从队列中取元素,取走BlockingQueue里排在首位的对象,如果Blockin...

2018-05-22 08:53:07

阅读数 160

评论数 29

【Java8新特性】Stream

一、使用Stream的三个操作步骤:创建Stream->中间操作->终止操作 二、详情 ①.创建Stream 1.可以通过collection系列集合提供的stream或parallelStream Lis...

2018-05-13 15:25:32

阅读数 133

评论数 13

【Java8新特性】Java8 内置的四大核心函数式接口

函数式接口是指只有一个抽象函数的接口 使用lambda必须要用函数式接口,java8中提供了四大核心函数式接口,我们可以直接使用,就免去了自己写的麻烦 1.Predicate:断言型接口 @Test public void test4() { List&a...

2018-05-05 20:22:01

阅读数 190

评论数 15

【Java多线程】synchronized(一)

1.什么是synchronized? synchronized 关键字,代表这个方法加锁,相当于不管哪一个线程(例如线程A),运行到这个方法时,都要检查有没有其它线程B(或者C、 D等)正在用这个方法(或者该类的其他同步方法),有的话要等正在使用synchronized方法的线程B(或者C...

2018-04-23 16:57:56

阅读数 119

评论数 43

【Java8新特性】Lambda表达式

1.什么是Lambda表达式? “Lambda 表达式”(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭...

2018-04-22 11:31:04

阅读数 118

评论数 20

【Mybatis】参数处理

  1.单个参数:mybatis不会做特殊处理 #{参数名/任意名}:取出参数值。   DAO层接口:     public void deleteEmpById(Integer id);   配置文件:   <delete id=&qu...

2018-03-13 14:21:47

阅读数 434

评论数 55

【Mybatis】一级缓存和二级缓存

一级缓存                                                                        一级缓存是SqlSession级别的缓存   工作机制:一个SqlSession就代表和数据库的一次会话,在数据库中查出的数据放在一级缓存...

2018-03-12 21:34:19

阅读数 182

评论数 36

【Mybatis】动态SQL

动态SQL是mybatis非常重要强大的功能之一,我们自己写sql,想按照传过来的不同的条件变换不同的SQL,我们自己拼SQL的时候要注意,符号是不是多了或少了之类的问题,或者复杂查询包含各种各样的判断,比较麻烦。   mybatis中提供了动态SQL标签写在SQL语句中,mybatis利用这...

2018-03-12 15:45:18

阅读数 502

评论数 24

【Mybatis】collection解决一对多关联查询

在上上篇中我们用级联属性的方式把数据查出来封装到Employee中,还有另一种方式实现数据的封装。接下来小编将介绍collection标签的相关知识,包括嵌套查询和分段查询两种方式。现在有员工和部门两张表,前两篇文章介绍的都是根据员工查部门,本篇文章介绍由部门查所有员工首先请参照上上篇中步骤1,2...

2018-03-06 21:39:53

阅读数 13981

评论数 21

【Mybatis】association解決一对一关联查询

在上一篇中我们用级联属性的方式把数据查出来封装到Employee中,还有另一种方式实现数据的封装。接下来小编将介绍association标签的相关知识,包括嵌套查询和分段查询两种方式。首先请参照上一篇中步骤1,2,3 , 4,此处从第5步开始一、嵌套查询5.新增EmployeeMapper.xml...

2018-03-06 16:06:20

阅读数 231

评论数 17

【Mybatis】ResultMap级联属性封装关联查询结果

1.MySQL下新建两张数据库表tbl_employee和tbl_deptCREATE TABLE `tbl_employee` ( `id` int(11) NOT NULL AUTO_INCREMENT, `last_name` varchar(255) COLLATE utf8_un...

2018-03-06 11:21:33

阅读数 759

评论数 10

【Mybatis】resultType和resultMap

1. resultType:表示把数据封装成什么类型比如:<select id="getEmpById" resultType="com.atguigu.mybatis.bean.Employee"&am...

2018-03-06 10:30:27

阅读数 205

评论数 10

【Mybatis】初识

Ibatis3.0 以后的版本就是mybatis   1.连接数据库的工具:JDBC ,DbUtils,JdbcTemplate  这些工具的SQL语句都写在java代码里,如果修改SQL语句,就需要修改代码,很不方便   2.框架 hibernate是全自动ORM框架 它会自动编写...

2018-03-01 17:32:04

阅读数 116

评论数 11

提示
确定要删除当前文章?
取消 删除
关闭
关闭