java基础
文章平均质量分 87
栗子勇
未曾学艺先示礼,未曾习武先明德
展开
-
Mybatis知识点梳理(收藏)
Mybatis知识点梳理一、什么是Mybatis? 1. Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。开发人员直接编写原生态sql,即可严格控制sql执行性能、且灵活度高。 2. Mybatis可以使用XML或注解来配置和映射原生信息,将POJO映射成数据库中的记录,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。 3. 通过xml文件或注解的方式将要执行原创 2021-06-09 00:05:36 · 710 阅读 · 0 评论 -
this关键字
this关键字1.this的作用: a、this表示的是当前对象本身; b、更准确地说,this代表当前对象的一个引用。2.普通方法中使用this a、区分类成员属性和方法的形参; b、调用当前对象的其他方法(可以省略); c、位置:任意;3.构造方法中使用this a、使用this来调用其他构造方法; b、位置:必须是第一条语句;4.this不能用于stati...原创 2019-08-08 20:28:43 · 212 阅读 · 0 评论 -
如何实现一个线程安全的单例,在不能加锁的前提下?
单例模式,属于创建类型的一种常用的软件设计模式。通过单例模式的方法创建的类在当前进程中只有一个实例(根据需要,也有可能一个线程中属于单例,如:仅线程上下文内使用同一个实例)。单例相信大家都不陌生,它是java中很重要的一个设计模式。稍微了解一点单例的朋友也都知道实现单例是要考虑并发问题的,一般情况下,我们都会使用synchronized来保证线程安全。那如果在不使用synchronized和l...原创 2019-11-15 13:47:42 · 504 阅读 · 1 评论 -
非常典型的死锁
死锁死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。1、定义两个锁public class MyLock { public static final Object LOCKA = new Object(); public sta...原创 2019-11-14 21:04:38 · 194 阅读 · 0 评论 -
从源码和代码相结合分析StringBuffer类及扩容原理
StringBuffer类的概念线程安全的可变字符序列。一个类似于 String的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。StringBuffer上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符添加或插入到字符...原创 2019-11-13 14:36:36 · 222 阅读 · 0 评论 -
从源码看==和equals的区别
==和equals的区别和联系“==”是关系运算符,equals()是方法,同时他们的结果都返回布尔值;“==”使用情况如下: a)基本类型,比较的是值 b)引用类型,比较的是地址 c)不能比较没有父子关系的两个对象equals()方法使用如下: a)系统类一般已经覆盖了equals(),比较的是内容。 b)用户自定义类如果没有覆盖equals(),将调用父类的equal...原创 2019-11-09 16:45:39 · 146 阅读 · 0 评论