Java
Star永恒
把自己当成唯一,让自己光彩。
展开
-
接口与抽象类的区别
Java中接口与抽象类的区别?抽象类:如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。如果一个类继承抽象类,那么就必须为基类中的抽象方法提供定义。如果不这么做,那导出类也为抽象类...原创 2020-03-20 19:43:12 · 145 阅读 · 0 评论 -
Java集合类
1、Java 中常用的容器有哪些?常见容器主要包括 Collection 和 Map 两种,Collection 存储着对象的集合,而 Map 存储着键值对(两个对象)的映射表。CollectionSet1.SetTreeSet:基于红黑树实现,支持有序性操作,例如:根据一个范围查找元素的操作。但是查找效率不如 HashSet,HashSet 查找的时间复杂度为 O(1),...原创 2019-11-18 11:01:52 · 224 阅读 · 0 评论 -
深入分析 Java 方法反射的实现原理
方法反射实例 public class ReflectCase { public static void main(String[] args) throws Exception { Proxy target = new Proxy(); Method method = Proxy.class.原创 2017-04-04 15:48:35 · 628 阅读 · 0 评论 -
Spring事务
什么是事务: 事务首先是一系列操作组成的工作单元,该工作单元内的操作是不可分割的, 也就是说要么都执行,要么都不执行。这就是事务事务的特性:ACID 原子性,一致性,隔离性,持久性。常见的问题: 丢失更新 脏读 不可重复读 幻读数据库通过隔离级别来解决以上问题 读未提交(Read uncommitted):原创 2017-04-19 22:16:40 · 218 阅读 · 0 评论 -
finally 语句块的深度辨析
/** * Created by HASEE on 2017/4/24. */public class FinallyDemo2 { public static void main(String[] args) { System.out.println(test()); } private static int test() { i原创 2017-05-12 15:39:36 · 298 阅读 · 0 评论 -
Java 9 新特性
1.目录结构 2.repl工具 jShell命令 3.模块化 4.多版本兼容jar包 5.接口方法的改进(在接口中 jdk7 只能声明全名常量和抽象方法 jdk8 添加了静态方法和默认方法 jdk9添加了私有方法)6.钻石操作符升级 可以有{} 7.异常处理try升级 8.下划线标识符命名的限制 _ 不允许了 9.String底层存储结构的变更(char数组变成byte字节数组) 10.增强了St...原创 2018-02-28 14:52:04 · 185 阅读 · 0 评论 -
Java高级
HashMap简介HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。HashMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。HashMap 的实现不是同步的,这意味着它不是线程安全的,但可以用 Collections的synchronizedMap方法使HashMap具有线程安全的能力。它的key、v...原创 2018-06-14 11:13:09 · 195 阅读 · 0 评论 -
Java面试
线程池首先要明确为什么要使用线程池,使用线程池会带来什么好处?• 线程是稀缺资源,不能频繁的创建。• 应当将其放入一个池子中,可以给其他任务进行复用。• 解耦作用,线程的创建于执行完全分开,方便维护。线程池是一种多线程处理形式,处理过程中将任务提交到线程池,任务的执行交由线程池来管理。如果每个请求都创建一个线程去处理,那么服务器的资源很快就会被耗尽,使用线程池可以减少创建和销毁线程的次...原创 2019-01-26 22:04:51 · 167 阅读 · 0 评论 -
Java NIO
微信公众号:菜鸟永恒1.Java NIO 简介2.Java NIO 与IO 的主要区别3.缓冲区(Buffer)和通道(Channel)4.文件通道(FileChannel)5.NIO 的非阻塞式网络通信选择器(Selector)SocketChannel、ServerSocketChannel、DatagramChannel面向流 面向缓冲区...原创 2019-02-03 22:56:30 · 197 阅读 · 0 评论 -
数据库连接池原理
原创 2017-03-25 18:41:42 · 205 阅读 · 0 评论 -
史上最全常用正则表达式
很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求。所以我最近把开发中常用的一些正则表达式整理了一下,在这里分享一下。给自己留个底,也给朋友们做个参考。一、校验数字的表达式1. 数字:^[0-9]*$2. n位的数字:^\d{n}$3. 至少n位的数字:^\d{n,}$4. m-n位的数字:原创 2017-03-15 11:51:23 · 250 阅读 · 0 评论 -
设计模式
设计模式:解决问题最行之有效的思想。是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。单例设计模式:解决的问题:保证一个类在内存中的对象唯一性。比如:多程序读取一个配置文件时,建议配置文件封装成对象。会方便操作其中数据,又要保证多个程序读到的是同一个配置文件对象,就需要该配置文件对象在内原创 2017-03-02 23:42:33 · 247 阅读 · 0 评论 -
详细深入分析 Java ClassLoader 工作机制
详细深入分析 Java ClassLoader 工作机制什么是 ClassLoader ?大家都知道,当我们写好一个 Java 程序之后,不是管是 C/S 还是 B/S 应用,都是由若干个 .class 文件组织而成的一个完整的 Java 应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的 class 文件当中,所以经常要从这个 cl原创 2017-03-02 23:52:26 · 289 阅读 · 0 评论 -
模板方法设计模式
解决的问题:当功能内部一部分实现时确定,一部分实现是不确定的。这时可以把不确定的部分暴露出去,让子类去实现。abstract class GetTime{ public final void getTime(){ //此功能如果不需要复写,可加final限定 long start = System.currentTimeMillis();原创 2017-03-03 00:01:05 · 227 阅读 · 0 评论 -
二分查找法
public static int halfSeach_2(int[] arr,int key){ int min,max,mid; min = 0; max = arr.length-1; mid = (max+min)>>1; //(max+min)/2; while(arr[mid]!=key){ if(key>arr[mid]){ min = mid + 1; } else if(key1原创 2017-03-03 00:08:07 · 321 阅读 · 0 评论 -
Spring的事务管理
经典事务面试题原创 2017-03-04 21:43:15 · 220 阅读 · 0 评论 -
动态代理的原始面目
原创 2017-02-26 23:26:39 · 225 阅读 · 0 评论 -
HashMap底层原理
原创 2017-03-12 10:46:06 · 430 阅读 · 0 评论 -
你真的了解 volatile 关键字吗?
一、Java内存模型想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的。Java内存模型规定了所有的变量都存储在主内存中。每条线程中还有自己的工作内存,线程的工作内存中保存了被该线程所使用到的变量(这些变量是从主内存中拷贝而来)。线程对变量的所有操作(读取,赋值)都必须在工作内存中进行。不同线程之间也无法直接访问对方工作内存中的变量,线程间原创 2017-04-08 19:22:37 · 294 阅读 · 0 评论 -
GAP平台
原创 2017-03-02 23:27:59 · 1093 阅读 · 0 评论