0%

目录

[TOC]

1. 线程安全性

对象的状态是指存储在状态变量(例如实例域或者静态域)中的数据

Java主要的同步机制是关键字synchronized,它提供了一种独占的加锁方式,但是”同步”这个术语还包括volatile类型的变量,显示锁(Explicit lock)以及原子变量

完全由线程安全的类构成的程序不一定就是线程安全的, 而在线程安全类中也可以包含非线程安全的类

正确性的含义就是:ok_hand: :某个类的行为与其规范完全一致

阅读全文 »

目录

[TOC]

MyBatis

mybatis

Mybatis是一个持久层框架,使用java编写,它封装了JDBC的很多的细节,使开发者只关注sql语句本身,而不用关注使用原生jdbc时应该具有的注册驱动,创建连接,关闭连接等繁杂的过程,它使用了ORM的思想实现了结果集的封装

ORM: Object Relational Mapping 对象关系映射

就是把数据库表的字段和实体类属性对应起来,从而对实体类进行操作就可以完成对数据库表的操作

阅读全文 »

目录

[TOC]

spring

Spring IOC

什么是ioc(控制反转)

首先IOC是Inversion of Controller即控制反转 它并不是一种新的技术而是一种新的编设计思想。原来创建对象的话需要使用关键字new,需要程序主动去寻找能够让程序正常运行的类 ,从而造成了类与类之间有很强的依赖关系,代码不够灵活,修改一个类可能会涉及很多类的修改 ioc的出现把创建对象的主动权交给了第三方即ioc容器,程序需要什么对象,ioc就给你什么对象,程序从原来的主动寻找对象到现在被提供对象,原来的依赖关系就没有了,现在类与类之间都依赖于ioc容器,靠ioc容器来建立它们之间的关系

DI(依赖注入)

DI即Dependency Injection DI其实就是在程序运行期间动态地向某个对象提供它所需要的其他对象,而Spring正是使用反射来实现注入的

虽然通过反射创建对象的方式的效率没有使用new关键字直接创建对象高,但是降低了程序之间的耦合性,即解耦,它使得 程序之间松散耦合,这样也方便测试,利于功能复用,更重要的是使得程序的整个体系结构变得非常灵活

阅读全文 »

ES6

[TOC]

let和var的区别

let块级作用域,而var则是全局作用域

1
2
3
for(var i = 0;i < 10;i++){      
}
console.log(i);//10 如果是用let则会报错i未定义
1
2
3
4
5
6
7
var a = [];
for(var i = 0;i < 10;i++){
a[i] = function(){
console.log(i);
};
}
a[6](); //10 若是用let则输出6 let仅在块级作用域有效

let和const不存在变量提升,即使用变量之前必须声明变量,不然会报错

阅读全文 »