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