- 博客(23)
- 收藏
- 关注
原创 Mybatis的一级缓存和二级缓存
为什么使用缓存?所谓的缓存,就是将程序或系统经常要调用的对象(临时数据)存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例。这样做可以减少系统的开销,提高效率。使用缓存是为了减少和数据库的交互次数,提高执行效率。什么样的数据能使用缓存,什么样的数据不能使用?经常查询并且不经常改变的,并且的数据的正确与否对最终结果影响不大的、不适用于缓存的数据:经常改变的数据,数据的正确与否对最终结果影响很大的。一级缓存:它指的是Mybatis中sqlSession对象的缓存,当我们执行查询以后,查询的
2020-10-11 13:06:40 257
原创 mysql引擎,BTree和B+Tree和锁
1.MySQL存储引擎引擎的概念生活中,引擎就是整个机器运行的核心,不同的引擎具备不同的功能。(五菱宏光和法拉利的引擎)MySQL存储引擎的概念MySQL数据库使用不同的机制存取表文件,差别在于不同的存储方式、索引技巧、锁定水平,不同的技术及配套的功能称为存储引擎.在关系型数据库中数据的存储是以表的形式存进行储的,存储引擎也可以称为表类型.Oracle , SqlServer等数据库只有一种存储引擎,MySQL支持的存储引擎有多种,最常用的三种是InnoDB、MyISAM、MEMORY。通过
2020-09-11 14:28:28 300
原创 spring-mybatis
@Component@Controller ----------> 定义web/controller层的bean@Service ------------> 定义service层的bean@Repository ----------> 定义dao层的bean等同于<bean id="bookDao" class="com.cast.dao.impl.BookDaoImpl">
2020-09-07 20:52:16 88
原创 pol读写Excel
/** * pol写excel */public class ExcelTest { public static void main(String[] args) throws IOException { SqlSession sqlSession = MapperFactory.getSqlSession(); DeptDao mapper = sqlSession.getMapper(DeptDao.class); List<Dept&
2020-09-04 19:23:47 459
原创 Redis
高并发就会造成我们的服务器瘫痪,核心本质是什么呢?其实并不是我们的应用服务器,而是我们的关系型数据库。关系型数据库才是最终的罪魁祸首!造成原因1.性能瓶颈:磁盘IO性能低下(关系型数据库菜存取数据的时候和读取数据的时候他要走磁盘IO).2.扩展瓶颈:数据关系复杂,扩展性差,不便于大规模集群(我们说关系型数据库,它里面表与表之间的关系非常复杂,就是一张表,通过它的外键关联了七八张表,最终非常影响查询的效率。同时,你想扩展下,也很难!)NoSQL:即 Not-Only SQL( 泛指非关系型的数据库)
2020-08-30 13:01:31 87
原创 this
<script> //this就是当前对象 let p = { name: "zs", age: 20, show: function () { console.log(this.name + "--" + this.age); } } document.write( p.name); do.
2020-08-29 18:58:10 107
原创 Servlet
Servlet生命周期(面试);Servlet创建默认情况下,第一次访问Servlet,Servlet被Tomcat创建,并且会调用init方法;每次访问Servlet都会调用service()方法;Servlet销毁;tomcat关闭,Servlet就会被销毁,在销毁在之前调用destory()方法;每一个Servlet在整个声明周期过程中只会被创建一次。所以说每一个Servlet都是单例;servlet线程不安全,避免线程安全:1.尽量不要在Servlet中定义成员变量,如果必须定义,也
2020-08-22 09:25:35 139
原创 动态代理
1、Java.lang.reflect.Proxy类可以直接生成一个代理对象Proxy.newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h)生成一个代理对象参数1:ClassLoader loader 代理对象的类加载器 一般使用被代理对象的类加载器(表名你要用那个类加载器去加载生成的代理类。)参数2:Class<?>[] interfaces 代理对象的要实现的接口
2020-08-19 14:58:27 251
原创 mysql 条件查询
#进阶2:条件查询/*语法: select 查询列表 from 表名 where 筛选条件 (true,false)如果成立,显示出来。 分类: 一:按条件表达式筛选 条件运算符:> < = <>不等 二:按逻辑表达式筛选 逻辑运算符:&& || and or not 三:模糊查询 like between and in is null */#一:按条件表达式筛选#案例一:查
2020-08-08 10:32:01 157
原创 IO 异常处理的两种方式
public class TestStream { public static void main(String[] args) { FileInputStream in = null; try { in = new FileInputStream("a.txt"); in.read(); //in.close 不能放在这,如果读取出现异常就不会执行这一步 所以放在finally中,但是放在finally中方
2020-07-19 19:21:45 707
原创 多线程
方式一:同步代码块package ManyThread1;public class MyThread extends Thread{ private static int ticketCount = 100;//此时的成员变量要用static,因为要不同对象调用一份数据 @Override public void run(){ while (true){ synchronized(MyThread.class){ //Synchr
2020-07-13 12:58:14 231
原创 集合面试题
public static void main(String[] args) { HashSet set =new HashSet(); person p1 = new person(1001,"AA"); person p2 = new person(1002,"BB"); set.add(p1); set.add(p2); System.out.println(set); p1.name="CC"; set..
2020-07-09 20:41:24 164
原创 MAP反转
```handlebars Map<String, String> map = new HashMap<>(); map.put("beijing", "北京"); map.put("tianjin", "天津"); map.put("xi’an", "西安"); //方法一// map.entrySet().stream().collect(Collectors.toMap(key->key.ge.
2020-07-09 20:09:03 1399 1
原创 Stream
// list.stream().filter(s -> s.startsWith("张")).filter(s -> s.length()==3).forEach(s -> System.out.println(s)); // Predicate 条件对象 list.stream().filter(new Predicate<String>() { @Override // 参数是正在遍历的元素
2020-07-07 20:34:38 154
原创 Date时间类API
JDK8版本之前 //String转换对象格式必须一致 s 和 pattern 的格式 String s = "2020-08-03 15:30:00"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date parse = sdf.parse(s); System.out.println(parse); //此时打印的是电脑
2020-07-04 08:36:34 169
原创 API(equals、toString,Integer、 BigDecimal)
API1.Math类1.ceil(向上取整) 2.floor(向下取整)//记:个子越来越高 个子越来越低2.System(了解)System.exit(int) 退出JAVA虚拟机,0表示正常退出,非0表示异常退出。System.CurrentTimeMillis() 毫秒值,当前时间1970-1-1 0:0:0 格林尼治时间arequals(重要)对象的equals方法public class StudentTest {
2020-06-30 21:07:20 147
原创 多态和内部类
多态使用前提1.有继承关系 2.方法重写 3.父类的引用指向子类的对象好处:扩展性、通用性。可以通过父类调用子类的重写方法。向上转型和向下转型eg:Animal a = new Dog(); //向上转型Dog d = (Dog) a; //向下转型必须有继承关系才能相互转化。instanceof// instance 本意是实例,对象的意思 instanceof 就是判断该对象是否能转换为右侧的类型,它表达的是【是一个】的关系对象 insta
2020-06-29 23:05:34 101
原创 Lambda
//组成Lambda表达式的三要素:形式参数,箭头,代码块//1.():里面没有内容,可以看成方法形参为空。//2. ->:箭头指向后面要做的事情//3. {}:方法体的内容,是我们具体要做的事情。// Lambda 使用前提:1.有一个接口(不能操作类) 2.接口中有且仅有一个抽象方法//练习// 1.编写一个接口(ShowHandler)// 2.在该接口中存在一个抽象方法(show),该方法是无参数无返回值// 3.在测试类(ShowHandlerD
2020-06-29 19:05:35 127
原创 匿名内部类
public class Inner {public static void main(String[] args) { InterImple ii = new InterImple(); ii.show(); //匿名内部类的理解:将继承/实现,方法重写,创建对象,放在一步进行 //解释:实现了Inter接口的,一个实现类对象/* new Inter(){ //new Inter相当于Inter的实现类 @Override
2020-06-29 18:37:28 89
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人