![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA高级
萌神小威威
去你的鸟命,我命由我不由天!
展开
-
为什么String是final的?
大佬讲解: https://blog.csdn.net/u014745069/article/details/86612841原创 2019-11-23 13:35:36 · 94 阅读 · 0 评论 -
JDBC操作数据库的基本步骤
JDBC操作数据库的基本步骤: 1)加载(注册)数据库驱动(到JVM)。 2)建立(获取)数据库连接。 3)创建(获取)数据库操作对象。 4)定义操作的SQL语句。 5)执行数据库操作。 6)获取并操作结果集。 7)关闭对象,回收数据库资源(关闭结果集-->关闭数据库操作对象-->关闭连接)。 代码演示 package JDBC; import java.sql.*; /** ...原创 2019-11-21 23:36:54 · 364 阅读 · 0 评论 -
静态内部类和非静态内部类
1、在new对象时候的区别 **原理:**静态(static)内部类,它可以不依赖于外部类实例被实例化;非静态内部类需要在外部类实例化后才能实例化。 代码样例: /** * @author MHW * @date 2019/11/21 14:12 */ public class Outer { public static class StaticInner{} public ...原创 2019-11-21 14:33:33 · 96 阅读 · 0 评论 -
AQS锁
3.1、队列同步器(AQS) 队列同步器AbstractQueuedSynchronizer(以下简称同步器),是用来构建锁或者其他同步组件的基础框架。 3.1.1、它使用了一个int成员变量表示同步状态。 3.1.2、通过内置的FIFO双向队列来完成获取锁线程的排队工作。 同步器包含两个节点类型的应用,一个指向头节点,一个指向尾节点,未获取到锁的线程会创建节点线程安全(compa...转载 2019-10-23 14:41:28 · 748 阅读 · 0 评论 -
JAVA之线程
目录 1、Thread的常用方法 2、创建多线程的四种方式 方式一:继承于Thread类 方式二:实现Runnable接口 方式三:实现Callable接口,重写call方法。 --- JDK 5.0新增 方式四:使用线程池 3、通过同步机制,解决线程安全问题 方式一:同步代码块 方式二:同步方法。 4、线程的生命周期 1、五种状态 2、状态转换图 5、线程的通信 1、...原创 2019-04-26 16:09:43 · 68 阅读 · 0 评论 -
String、StringBuffer和StringBuilder的异同点
String、StringBuffer、StringBuilder三者的异同? String:不可变的字符序列;底层使用char[]存储 StringBuffer:可变的字符序列;线程安全的,效率低;底层使用char[]存储 StringBuilder:可变的字符序列;jdk5.0新增的,线程不安全的,效率高;底层使用char[]存储 源码分析: String str = new Str...转载 2019-04-26 20:46:13 · 921 阅读 · 0 评论 -
监听器Listener的基础知识
Listener 1、作用 监听某一个事件的发生。 状态的改变。 2、监听器的内部机制 其实就是接口回调. 2.1、监听机制举例 A在执行循环,当循环到5的时候, 通知B。 事先先把一个对象传递给 A , 当A 执行到5的时候,通过这个对象,来调用B中的方法。 但是注意,不是直接传递B的实例,而是传递一个接口的实例过去。 3、小总结 总共有8个 划分成三种类型 使用监听器的步骤...原创 2019-05-04 18:59:41 · 402 阅读 · 0 评论