- 博客(16)
- 问答 (1)
- 收藏
- 关注
原创 Spring基础
起源 Spring最大的目的之一就是使J2EE开发更容易,Spring不仅仅是一个单层框架,而是类似一个平台或者生态系统。在这个平台或者生态系统中,可以将Struts,Hibernate等单层框架最佳的方式融合在一起。 简介 一句话概括:Spring就是一个开源的轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 开源:因为开源,免费,用户无需经过任何人同意即可修改代码,可控制性强,不受他...
2019-10-27 15:09:25 200
原创 Java类集(二)
HashMap,TreeMap,HashTable的关系与区别 a. HashMap,TreeMap,HashTable都是Map的常用子类,HashMap基于哈希表+红黑树(JDK1.8之后),HashTable基于哈希表,TreeMap基于红黑树。 b. HashMap采用懒加载策略,添加元素时才初始化,采用异步处理,线程不安全,性能较高(JDK1.2) c. HashTable产生对象时...
2019-07-25 11:16:01 113
原创 Java类集(—)
ArrayList , Vector , LinkedList关系与区别? a. ArrayList , Vector , LinkedList都属于List接口常用子类,其中ArrayList , Vector基于数组实现,LinkedList基于链表实现。 b. ArrayList采用懒加载策略,在构造方法阶段不初始化对象数组,在添加元素时才初始化对象数组(默认为10),扩容为原先数组的1...
2019-07-25 10:26:19 146
原创 MySQL表的简单练习
表的操作 创建表: create table cbl( id int, name varchar(20) comment '用户名', password char(32) ); 表中插入数据: insert into users values(1,'老王',23),(2,'老刘',24),(3,'老马',25); 修改表的结构: 在表中增加一个字段age,保存年龄: alter table...
2019-07-21 10:11:06 412
原创 MySQL架构
MySQL架构 看图: SQL分类 DDL数据定义语言,用来维护存储数据的结构 代表指令:creat , drop , alter DML数据操纵云烟,用来对数据进行操作 代表指令:insert , delete , update DML中有单独分了一个DQL,数据查询语言, 代表指令:select DCL数据控制语言,主要负责权限管理和事物 代表指令:grant , revoke , com...
2019-07-21 08:48:59 120
原创 MySQL简单操作指令
创建数据库 创建数据库 create database helloworld; 使用数据库 use helloworld; 创建数据库表 create table student(id int,name varchar(32),gender varchar(2)); 表中插入元素 insert into student (id, name, gender) values (1...
2019-05-22 00:14:21 132
原创 简易多线程聊天室
项目:简易多线程聊天室 功能: 1. 注册 2. 群聊 3. 私聊 4. 退出 5. 显示当前用户 实现原理: 具体代码:github代码 java-chat-room 水平有限,见谅,还在优化中。 ...
2019-05-20 20:52:26 375
原创 CAS操作
CAS : Compare And Swap - 乐观锁 悲观锁(JDK1.6之前的内建锁) : 假设每一次执行同步代码块均会产生冲突,所以当线程获取锁成功,会阻塞其他尝试获取该锁的线程。 乐观锁(Lock) : 假设所有线程访问共享资源时不会出现冲突,既然不会出现冲突自然就不会阻塞其他线程。线程不会出现阻塞状态。 CAS(无锁操作),使用CAS叫做比较交换来判断是否出现冲突,出现冲突就重试当前操...
2019-05-14 19:40:29 453
原创 单例设计模式
单例设计模式:一个类只产生一个实例化对象 首先控制对象的产生数量-将构造方法私有化(从源头控制对象数量) 类构造方法私有化:任何其他类均无法产生此类对象 唯一的一个对象产生于类内部 唯一的属性为静态属性,并且类中提供静态方法取得此对象(类的外部无法产生对象,因此无法调用对象方法) 饿汉单例模式:(直接new一个对象) class Singleton { // 类中提供了一个对象 p...
2019-05-14 17:01:05 77
原创 Java中String类详解
实例化方式 直接赋值(用到最多) String str = “hello”; 通过构造方法赋值 String str = new String(“hello”); 字符串相等比较 "=="比较的两个操作数的值,对于基本类型而言比较的就是值的大小,对于引用类型而言,比较的是两者指向的堆内存地址是否相同。 比较字符串内容是否相等时,使用equals() 字符串常量是String类的匿名对象 ...
2019-05-14 16:19:08 224
原创 线程池
线程池优点 **降低资源消耗:**通过重复录用已创建的线程降低创建与销毁带来的损耗。 **提高响应速度:**当任务到达时,无需等待线程创建就可以执行。 **提高线程的可管理性:**使用线程池可以统一进行线程分配,调度与监控。 线程池继承关系 ExecuterService(普通调度池核心接口) submit(Callable | Runnable):Future ScheduledExecut...
2019-05-13 23:49:37 139
原创 垃圾回收算法
标记-清除算法 “标记清除算法”是最基础的收集算法。算法分为“标记”和“清除”两个部分:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。后续的收集算法都是基于这种思路并对其不足之处加以改进而已。 “标记-清除算法”的不足主要有两个 ...
2019-05-11 11:33:17 110
原创 如何判断对象已“死”
Java堆中存放着几乎所有的对象实例,垃圾回收器在对堆进行垃圾回收前,首先要判断这些对象哪些还存活,哪些已经“死去”。判断对象是否已“死”有如下几种算法: 引用计数法 算法思想:给每一个对象附加一个计数器,每当有一个地方引用此对象时,计数器+1;每当有一个引用失效是,计数器-1;在任意时刻,只要计数器值为0的对象就是不能再被引用的,即对象已死。 引用计数法实现简单,判断效率也较高,但是无法解决循环...
2019-05-10 23:38:49 275
原创 Java内存区域划分
JVM在执行Java程序的过程中把他管理的内存划分为若干个不同的数据区域。这些数据区域各有各的用处,各有各的创建与销毁时间。一般来说,JVM所管理的内存将会包含以下几个运行是数据区域 线程私有区域:程序计数器 , Java虚拟机栈 , 本地方法栈 线程共享区域:Java堆,方法区,运行时常量池 程序计数器 程序计数器是比较小的内存空间,当前线程锁执行的字节码的行号指示器。若当前线程执行的是Java...
2019-05-04 22:42:42 102
原创 Java多线程:多线程的实现
Java多线程的实现java多线程实现主要有三个方法:继承Thread类实现多线程Runnable接口实现多线程Callable接口实现多继承插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导...
2019-04-26 22:41:18 132
空空如也
ovs流表可以在port处匹配从br-int网桥过来的流量吗?
2022-03-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人