自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hello, New World!

万物伊始,效率本源。大道至简,代码之禅。自建博客: https://janycode.github.io

  • 博客(433)
  • 资源 (4)
  • 收藏
  • 关注

原创 JDBC中ThreadLocal类的使用及解决转账事务问题

ThreadLocal类的使用、JDBC中转账事务问题解决1. ThreadLocal 类的使用2. 转账中的事务流程体现转账基本流程:fromAccount 转入 toAccount 账户中一定金额验证 fromAccount 是否存在验证 fromAccount 是否密码正确验证当前账户余额是否充足验证 toAccount 是否存在减少 fromAccount 的余额增加 t...

2020-04-01 19:14:04 689

原创 JDBC数据库连接池工具类和Service业务封装思想

数据库连接池、业务封装思想1. JDBC 数据库连接池工具类1.1 自定义连接池1.2 Druid 德鲁伊连接池(alibaba)2. Service 业务封装思想共用的配置文件:database.properties# 数据库配置driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/数据库名?useUnicode=true...

2020-04-01 18:45:01 416

原创 JDBC封装连接工具类和封装数据访问思想(ORM/DAO)

JDBC封装连接工具类、封装数据访问:ORM思想与DAO层1. JDBC 封装连接数据库工具类1.1 可重用方式1.2 跨平台方式2. JDBC 封装数据访问2.1 ORM 思想2.2 DAO 层补充:String、java.util.Date、java.sql.Date 之间的转换1. JDBC 封装连接数据库工具类1.1 可重用方式封装了获取连接、释放资源两个方法:public st...

2020-04-01 00:41:18 364

原创 JDBC的环境搭建与基本开发步骤

JDBC的基本使用与开发步骤1. JDBC基本认识1.1 什么是JDBC?1.2 JDBC核心思想1.1.1 MySQL数据库驱动1.1.2 JDBC API1.3 环境搭建2. JDBC开发步骤2.1 注册驱动2.2 连接数据库2.3 获取发送SQL的对象2.4 执行SQL语句2.5 处理结果2.6 释放资源2.7 综合案例3. ResultSet(结果集)3.1 接收结果集3.2 遍历Resu...

2020-03-30 20:24:46 821

原创 Intellij IDEA中sql语句自动补全和去除sql语句警告波浪线

相信不少人遇到在 IDEA 中输入的 sql 语句会普遍飘一个警告的波浪线,很是让人觉得不爽,今天,干它!sql语句的警告波浪线示例:原因:(鼠标放上去可以看到提示,或者光标在这一行上 按神奇的 F2)No data sources are configured to run this SQL and provide advanced code assistance. Disab...

2020-03-28 23:59:38 9566 2

原创 MySQL数据库语句之约束、事务、权限、视图

MySQL 约束、事务、权限、视图1. 约束1.1 实体完整性约束1.1.1 主键约束1.1.2 唯一约束1.1.3 自动增长列1.2 域完整性约束1.2.1 非空约束1.2.2 默认值约束1.2.3 引用完整性约束1.3 约束创建整合案例1.3.1 创建表2. 事务2.1 模拟转账2.1.1 数据库模拟转账2.1.2 模拟转账错误2.2 事务的概念2.3 事务的起始2.4 事务的原理2.5 事务...

2020-03-28 18:19:56 362

原创 MySQL-数据的 DML 操作: 增、删、改

DML 操作: 增、删、改1.1 新增(INSERT)1.1.1 添加一条信息1.2 修改(UPDATE)1.2.1 修改一条信息1.3 删除(DELETE)1.3.1 删除一条信息1.4 清空整表数据(TRUNCATE)1.4.1 清空整张表1.1 新增(INSERT)语法:INSERT INTO 表名(列 1,列 2,列 3…) VALUES(值 1,值 2,值 3…);1.1.1 ...

2020-03-28 18:14:43 207

原创 Intellij IDEA设置Sublime Text3主题风格(亲测好用)

本人亲测,且调整了不少的细节,花了不少功夫。如图所示:支持MySQL语句着色,去掉了暗色时会有的背景色;字体为 Microsoft YaHei Mono,这样同时满足英文和中文看着舒服;别的地方下载的不一定修改过一些细节,会看着很不舒服。导出的 setting.zip 配置 见百度网盘:链接:https://pan.baidu.com/s/1i1KfkAX9yxQR1ct1C...

2020-03-28 18:02:42 8579 17

原创 MySQL数据库操作与数据表操作

MySQL数据库操作与数据表操作1. 数据【库】操作1.1 数据值类型1.1.1 数值类型1.1.2 日期类型1.1.3 字符串类型1.2 创建数据库(CREATE)1.2.1 创建数据库1.3 修改数据库(ALTER)1.3.1 修改数据库的字符集1.3.2 修改数据库的列(列:增、删、改)1.4 删除数据库(DROP)1.4.1 删除数据库2. 数据【表】操作(DML:增、删、改)2.0 数据...

2020-03-27 20:51:06 268

原创 MySQL数据查询语法大全(汇总)

MySQL数据查询语法大全1. 基本查询1.1 查询部分列1.2 查询所有列1.3 对列中的数据进行运算1.4 列的别名1.5 查询结果去重2. 排序查询2.1 依据单列排序2.2 依据多列排序3. 条件查询3.1 等值判断(=)3.2 逻辑判断(and、or、not)3.3 不等值判断(> 、< 、>= 、<= 、!= 、<>)3.4 区间判断(between...

2020-03-26 19:10:11 1588 1

原创 MySQL详细安装步骤、配置、基本操作

MySQL安装与基本操作1. MySQL 的安装1.1 MySQL 安装文件获取1.2 MySQL 详细安装步骤1.3 关闭开机自启、手动启动命令1.4 卸载 (若需重装)2. MySQL 环境变量配置3. MySQL 基本命令1. MySQL 的安装1.1 MySQL 安装文件获取官方网站:https://www.mysql.com/下载地址:https://dev.mysql.com...

2020-03-25 17:57:32 657

原创 【Java】高质量代码:20条通用准则

Java开发中通用的方法和准则1. 不要在常量和变量中出现易混淆的字母2. 不要让常量变成变量3. 三元操作符的类型必须一致4. 避免带有变长参数的方法重载5. 别让 null 值和空值威胁到变长方法6. 重写变长方法也循规蹈矩7. 警惕自增的陷阱8. 不要让旧语法困扰你1. 不要在常量和变量中出现易混淆的字母包名全小写、类名首字母全大写、常量全部大写并下划线分割、变量采用驼峰命名等,这些是最...

2020-03-24 22:23:50 342

原创 【Java】Comparable和Comparator两接口区别总结

Comparable 和 Comparator 的区别1. Comparable 自然排序比较2. Comparator 定制排序比较3. 两者的比较总结Java 中为我们提供了两种比较机制:Comparable 和 Comparator。两个词的意思都是比较的意思,但实际又是 可比较的 和 比较器。所以很是疑惑。。。1. Comparable 自然排序比较java.lang pu...

2020-03-23 19:50:47 328

原创 【Java】JavaSE中易混淆概念汇总(一图胜千言)

JavaSE中易混淆概念汇总1. 四个访问修饰符的访问范围2. 三大关键字的修饰和作用3. 四种内部类的区别和特点4. abstract 抽象类与interface 接口5. Set集合元素不重复的基本逻辑6. 八种包装类和包装类缓冲区问题7. 异常处理基本架构类型8. 常用数据集合体系汇总9. synchronized同步锁与ReentrantLock重入锁10. 字节流与字符流1. 四个访问...

2020-03-22 13:06:29 340 1

原创 【Java】实现FTP文件下载功能简单IO流逻辑

download下载功能简单IO流逻辑Server 端IO处理逻辑Client 端IO处理逻辑区别 字符流 与 字节流 各自的功能和过滤流的使用场景。Server 端IO处理逻辑try { // 字符流:创建 Clinet/Server 交互输入输出字符流(收发字符串) BufferedReader br = new BufferedReader(new InputStreamRea...

2020-03-21 18:28:17 960

原创 【Java】三种单例模式的实现和优劣对比

Java三种单例模式① 单例模式:饿汉式(线程安全、占资源)② 单例模式:懒汉式(不安全、需要同步)③ 单例模式:懒汉式(线程安全,静态内部类)单例(singleton):只允许创建一个该类的对象。① 单例模式:饿汉式(线程安全、占资源)天生线程安全(无锁)、类加载时创建(不用也会被创建,占用资源)public class TestSingleton { public stati...

2020-03-21 12:18:18 459

原创 【Java】反射机制实现工厂模式和通用编程写法

Java工厂模式和通用编程1. 工厂模式2. 通用编程1. 工厂模式开发中有一个非常重要的原则“开闭原则”,对拓展开放、对修改关闭;工厂模式主要负责对象创建的问题;可通过反射进行工厂模式的设计,完成动态的对象创建。public class TestNewInstanceForFile { public static void main(String[] args) thr...

2020-03-21 11:46:36 264

原创 【Java】jdk1.8新特性及用法总结

Java8新特性及用法总结1. 接口中的实现方法2. Lambda 表达式3. 方法引用 ::4. 函数式接口 × 4① Predicate 接口(断言、返回真假)② Consumer 接口(消费、有去无回)③ Supplier 接口(创造、无中生有)④ Function 接口(传递、返回数据)5. (未完待续)1. 接口中的实现方法① 使用 default 关键字就可以给接口增加一个非抽象的...

2020-03-20 22:51:12 571

原创 【Java】反射机制介绍与Class类的基本使用

Java反射机制与Class类1.Java反射机制1.1 Java的反射机制是什么1.2 Java的反射的应用场合1.3 Java反射的常用类1.4 反射使用步骤2. Class类2.1 常用方法和示例2.2 获取Class对象的3种方法2.3 反射创建对象的2种方法3. 工厂设计模式1.Java反射机制1.1 Java的反射机制是什么在运行状态中,对于任意一个类都能够知道这个类所有的属性和...

2020-03-19 18:24:07 408

原创 【Java】socket发送带空格的字符串被自动换行问题的解决

String sendMsg = input.next(); // 如果输入了带空格的字符串,会被读出为换行String sendMsg = input.nextLine(); // 使用nextLine()【解决方案】这样在接收方 readLine()的时候到\n就会被正确读取。原因:next()方法把输入的空格自动解析为\n处理,算是一个坑吧。对比:...

2020-03-18 23:17:25 2291

原创 【Java】网络编程之Socket相关类的使用

文章目录1. InetAddress类2. Socket类 & ServerSocket类1. InetAddress类位置:java.net构造方法为默认default(包内可见),通过类内静态方法获取对象常用方法:byte[] getAddress()返回此 InetAddress对象的原始IP地址。static InetAddress[] getAllByName(...

2020-03-18 20:39:43 326

原创 【Java】File类与FileFilter过滤接口的使用

文章目录1. File类2. FileFilter接口实现过滤指定文件1. File类文件和目录路径名的抽象表示形式。public class File extends Object implements Serializable, Comparable<File>构造方法:没有无参构造。File(File parent, String child...

2020-03-17 18:13:23 308

原创 【Java】基本字符流输入输出类的使用

文章目录1. 基本字符输入输出类结构2. 抽象父类:Writer & Reader2.1 实现类:字符过滤流 PrintWriter & BufferedReader2.2 实现类:桥转换流 OutputStreamWriter & InputStreamReader2.3 实现类:字符节点流 FileWriter & FileReader1. 基本字符输入输出类...

2020-03-17 18:02:36 826

原创 【Java】基本字节流输入输出类的使用

文章目录1. 基本字节输入输出流实现类2. 输入输出字节流的分类3. 抽象父类:InputStream & OutputStream3.1 实现类:字节节点流 FileOutputStream & FileInputStream3.2 实现类:字节过滤流(缓冲流)BufferedOutputStream & BufferedInputStream3.3 实现类:字节过滤流(...

2020-03-16 18:28:22 1042

原创 【Java】读写.properties配置文件详解

文章目录1. ".properties"配置文件介绍2. Eclipse中怎么创建properties文件3. Properties 类的特点4. 读写.properties配置文件(非常简单)1. ".properties"配置文件介绍后缀名为.properties是一种属性配置文件。这种文件以key=value格式存储内容,Java中可以使用Properties类来读取这个文件Str...

2020-03-15 15:43:03 2692

原创 【Java】ReentrantLock重入锁与synchronized同步锁区别详解

文章目录1. 两者优劣特点对比(详细)2. ReentrantLock 的3个高级功能功能①:等待可中断功能②:公平锁机制功能③:锁可绑定多个条件ReentrantLock实现类(Lock接口)详解:【Java】Lock锁接口和实现类详解synchronized关键字线程同步详解:【Java】线程的基本同步方式和常用方法1. 两者优劣特点对比(详细)比较点Sychronized关...

2020-03-15 13:12:20 566

原创 【Java】常用数据集合体系和特点(汇总)

文章目录1. Collection体系集合1.1 List 表① ArrayList 类(数组)② Vector 类(数组、线程同步)③ LinkedList 类(链表)④ CopyOnWriteArrayList 类(线程安全且高效的List)1.2 Set 集合① HashSet 类(HashCode)② LinkedHashSet 类(记录插入顺序)③ TreeSet 类(二叉树-自动排序)...

2020-03-14 22:02:31 661 1

原创 【Java】Queue、BlockingQueue和队列实现生产者消费者模式

文章目录1. Queue接口 - 队列1.1 ConcurrentLinkedQueue类(线程安全)2. BlockingQueue接口 - 阻塞队列2.1 ArrayBlockingQueue类(有界阻塞队列)2.2 LinkedBlockingQueue类(无界阻塞队列)3. 源码:BlockingQueue实现生产者消费者模式1. Queue接口 - 队列public interfac...

2020-03-14 21:29:15 576

原创 【Java】线程安全的集合汇总(方法+类)

文章目录1. Collection体系下线程安全集合2. CopyOnWriteArrayList类(线程安全的List)3. CopyOnWriteArraySet类(线程安全的Set)4. ConcurrentHashMap类(线程安全的Map)1. Collection体系下线程安全集合Collection体系集合下,除Vector以外的线程安全集合(蓝色):Collections工...

2020-03-13 22:48:23 568

原创 【Java】Lock锁接口和实现类详解

文章目录1. Lock接口2. ReentrantLock类(重入锁/递归锁) - Lock接口实现类3. ReentrantReadWriteLock类(读写锁) - ReadWriteLock接口实现类1. Lock接口public interface Lock {}提供更多实用性方法,功能更强大、性能更优越。常用方法:① void lock() // 获取锁,如锁被占用,则等待...

2020-03-13 22:41:03 1705

原创 【Java】线程池的创建和获取、异步并发计算方式

文章目录1. 线程池概念2. 线程池原理3. 获取线程池 - Executor接口 & Executors工具类4. Callable接口5. Future接口6. 线程的异步与同步1. 线程池概念现有问题:线程是宝贵的内存资源、单个线程约占1MB的空间,过多分配易造成内存溢出;频繁的创建及销毁会增加虚拟机回收频率、资源开销,造成程序性能下降。线程池:线程容器,可设定线程...

2020-03-13 22:35:56 355

原创 【Java】生产者与消费者模式的简单版本×2(源码)

文章目录1. Java生产者与消费者实现 - 极简版(单个商品)2. Java生产者与消费者实现 - 简单版(多个商品)1. Java生产者与消费者实现 - 极简版(单个商品)public class TestProductCustomer { public static void main(String[] args) { Shop shop = new Shop(); // 共享资源...

2020-03-12 20:33:34 453

原创 【Java】synchronized同步锁详解

文章目录1. Java锁的种类1.1 乐观锁1.2 悲观锁1.3 自旋锁1.4 其他种类锁...2. synchronized同步锁(悲观锁)2.1 synchronized 作用范围2.2 synchronized 核心组件2.3 synchronized 实现1. Java锁的种类1.1 乐观锁乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低。每次去拿数据的时候都认为别人不会...

2020-03-12 18:37:39 1460 2

原创 【Java】线程的基本同步方式和常用方法

文章目录1. 线程的同步方式1.1 同步代码块1.2 同步方法2. 线程的常用方法2.1 Thread构造方法2.2 Thread静态方法2.3 Thread成员方法1. 线程的同步方式线程为什么是不安全的?当多线程并发访问临界资源时,如果破坏原子操作,可能会造成数据不一致。临界资源:共享资源(同一对象),一次仅允许一个线程使用,才可以保证正确性;原子操作:不可分割的多步操作,被视作一...

2020-03-12 18:17:40 230

原创 【Java】JVM线程调度和进程调度方式

文章目录1. Java线程调度的方式1.1 抢占式调度1.2 协同式调度2. JVM线程调度实现(抢占式)3. 进程调度算法3.1 优先调度算法3.2 高优先权优先调度算法3.3 基于时间片的轮转调度算法1. Java线程调度的方式1.1 抢占式调度抢占式调度指的是每条线程执行的时间、线程的切换都由系统控制。系统控制指的是在系统某种运行机制下,可能每条线程都分同样的执行时间片,也可能是某些...

2020-03-11 20:24:18 2392

原创 【Java】线程创建和线程状态详解

文章目录1. 线程创建① 继承父类 - Thread② 实现接口 - Runnable2. start()和run()的区别3. 线程状态(5种)1. 线程创建进程:程序静止的,真正运行时的程序,才被称为进程。线程:轻量级进程(Light Weight Process),程序中的一个顺序控制流程,同时也是CPU的基本调度单位,进程由1个或多个线程组成,彼此间完成不同的工作,交替执行,称为多线...

2020-03-11 18:43:43 237

原创 【Java】finally关键字的深入探讨

文章目录1. final、finalize、finally 的区别① final 修饰词② finalize() 方法③ finally 关键字2. finally 特点探讨2.1 finally 释放资源2.2 finally 与 return 探讨1. final、finalize、finally 的区别① final 修饰词final修饰类:最终类,不能被继承,如String、Mat...

2020-03-10 19:13:47 308

原创 【Java】自定义异常和异常中的方法覆盖注意事项

文章目录1. 自定义异常1.1 定义方式1.2 自定义异常的抛出2. 异常中的方法覆盖1. 自定义异常1.1 定义方式① 必须继承自Exception或Exception的子类,常用RuntimeException② 必须提供无参构造方法;③ 必须提供String message的1参构造方法,super(message);备注:受查异常CheckedException和运行时异常R...

2020-03-10 17:51:42 944

原创 【Java】异常类体系及异常处理

文章目录1. 异常概念2. 异常分类体系3. 异常的抛出方式:throw & throws4. 异常的处理方式:try-catch-finally1. 异常概念如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法。在这种情况下会抛出一个封装了错误信息的对象。此时,这个方法会立刻退出同时不返回任何值。另外,调用这个方法的其他代码也无法继续执行,异常处理机制会将代码执行交给...

2020-03-09 21:01:08 326

原创 【Java】算法排序之冒泡/插入/选择/快速、二分查找 - 附动图

文章目录1. Java排序:冒泡排序 - 最简单2. Java排序:插入排序 - 简单3. Java排序:选择排序 - 简单4. Java排序:快速排序 - 递归(难)5. Java算法:二分查找 - 升降序逻辑处理1. Java排序:冒泡排序 - 最简单(1)比较前后相邻的二个数据,如果前面数据大于后面的数据,就将这二个数据交换。(2)这样对数组的第 0 个数据到 N-1 个数据进行一次遍...

2020-03-08 17:22:42 512 1

JVM-Java内存规范.png

Java-JVM内存规范(详细完整思维导图),包含物理内存与虚拟内存、内核空间与用户空间、java中需要使用的内存组件、jvm内存结构、jvm内存回收策略、JVM参数等...

2020-05-28

MVC模式用JSP实现用户管理(增删改查)核心逻辑图示.png

MVC模式 + JSP + 三层架构设计,实现对用户的登陆、登出、新增(注册)、删除用户、修改用户、查询用户、以及查询所有用户的基本核心逻辑。

2020-05-09

Filter过滤器实现自动登陆核心逻辑.png

Java中Servlet使用Filter过滤器实现自动登陆核心逻辑流程图(基本可以直译代码),特此分享供大家学习交流使用,如有不足之处请私信或者评论纠正。

2020-05-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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