java基础
清露草木
用博客整理技术,用坚持砥砺前行。等是窟窿,走是灯笼
展开
-
java基础篇(6)——java线程池
为什么用线程池?线程池的作用?好处?用例1、降低系统资源消耗,通过重用已存在的线程,降低线程创建和销毁造成的消耗;2、提高系统响应速度,当有任务到达时,通过复用已存在的线程,无需等待新线程的创建便能立即执行;3、提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。(线程过多会导致OOM,并且cpu切换也是有时间成本的)线程池中主要参数的含义 /** * Creates a new {@code原创 2020-09-14 18:33:47 · 125 阅读 · 0 评论 -
java反射机制
java反射机制java反射机制可以让我们在运行期获取类、接口、变量和方法的信息。通过反射我们可以动态的创建对象,获取类的属性(包括私有属性)、方法等信息;通过反射我们亦可以实现动态代理、动态的类加载以及与泛型相关的操作。获取类获取class对象在获取一个类的相关信息前,我们必须首先获取它的class对象,这里有两种方式:直接通过Object.class,如下:Class myClass = My...转载 2018-05-04 15:44:51 · 139 阅读 · 0 评论 -
java基础篇(5)——Servlet详解
Servlet的生命周期?1,Servlet 通过调用 init () 方法进行初始化。2,Servlet 调用 service() 方法来处理客户端的请求。3,Servlet 通过调用 destroy() 方法终止(结束)。4,最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。Tomcat 与 Servlet 是如何工作的:步骤:Web Client 向Servlet容器(Tomc...原创 2018-04-26 15:22:53 · 261 阅读 · 0 评论 -
Java 枚举(enum) 详解7种常见的用法
JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。大师兄我又加上自己的理解,来帮助各位理解一下。用法一:常量在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 Java代码 public enum Color { ...转载 2018-05-03 15:35:44 · 163 阅读 · 0 评论 -
java基础篇(4)——java中的锁
java中有两种显试锁:synchronized和Lock接口。synchronized的实现原理: synchronized可以保证方法或者代码块在运行时,同一时刻只有一个方法可以进入到临界区,同时它还可以保证共享变量的内存可见性Java中每一个对象都可以作为锁,这是synchronized实现同步的基础: 1. 普通同步方法,锁是当前实例对象 2. 静态同步方法,锁是当前类的cl...原创 2018-04-23 17:02:08 · 226 阅读 · 0 评论 -
java基础篇(3)——java中几种常用排序算法、查找算法、链表倒序
快速排序1,基本思想:随机找出一个数(通常就拿数组第一个数据就行),把它插入一个位置,使得它左边的数都比它小,它右边的数据都比它大,这样就将一个数组分成了两个子数组,然后再按照同样的方法把子数组再分成更小的子数组,直到不能分解为止。 它也是分治思想的一个经典实验(归并排序也是)。2,算法public class QuickSort{ public static void quick...原创 2018-04-23 16:58:41 · 343 阅读 · 0 评论 -
java基础篇(1)——基础篇
1,==和equals的区别 ==是比较两个对象的内存地址是否相同。 在Object类里,equals()方法使用==比较两个对象是否相等。 我们通常重写equals()方法,用于比较两个对象值是否相等。 总结:通常==比较内存地址,equals()比较值2,重写hashCode()方法需要遵循那些原则 1,对象hashCode不一定唯一,但要尽量分散 2,对象...原创 2018-04-12 22:19:49 · 421 阅读 · 0 评论 -
java基础篇(2)——集合框架总结篇
集合框架总结我们常用的集合框架有Map集合(HashMap、HashTable、TreeMap)、List集合(ArrayList、LinkedList)、Set集合(HashSet)常用的并发集合框架有ConcurrentHashMap、CopyOnWriteArrayList、CopyOnWriteLinkedList等一一解析:Map集合存放key-value结构数据,常用的有HashMap...原创 2018-04-14 21:35:05 · 283 阅读 · 0 评论 -
Java并发编程:volatile关键字解析
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下...转载 2018-03-08 11:31:10 · 94 阅读 · 0 评论 -
面向对象和面向过程的区别以及优缺点
面向过程 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。 缺点:没有面向对象易维护、易复用、易扩展 面向对象 优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护 缺点:性能比面向过程低 面...转载 2018-03-08 11:03:14 · 884 阅读 · 0 评论 -
java 接口 抽象类 继承 重载 重写 多态
4.1 抽象类 在面向对象领域由于抽象的概念在问题领域没有对应的具体概念,所以用以表征抽象概念的抽象类是不能实例化的。 同时,抽象类体现了数据抽象的思想,是实现多态的一种机制。它定义了一组抽象的方法,至于这组抽象方法的具体表现形式有派生类来实现。同时抽象类提供了继承的概念,它的出发点就是为了继承,否则它没有存在的任何意义。所以说定义的抽象类一定是用来继承的,同时在一个以抽象...原创 2016-07-16 23:41:03 · 4353 阅读 · 0 评论 -
传统IO
http://blog.csdn.net/zhangerqing/article/details/8466532http://www.2cto.com/kf/201312/262036.htmlhttp://www.cnblogs.com/nerxious/archive/2012/12/15/2818848.htmlhttp://www.cnblogs.com/pepcod/arch转载 2016-07-16 23:38:50 · 292 阅读 · 0 评论 -
JAVA 中BIO,NIO,AIO的理解
在高性能的IO体系设计中,有几个名词概念常常会使我们感到迷惑不解。具体如下: 序号问题 1 什么是同步? 2 什么是异步? 3 什么是阻塞? 4 什么是非阻塞? 5 什么是同步阻塞? 6 什么是同步非阻塞? 7 什么是异步阻塞? 8 什么是异步非阻塞? 在弄清楚上面的几个问题之前,我们首先得明白什么是同步,异步,阻塞,非阻塞,只有这几个单个概念理解清转载 2016-07-16 23:37:44 · 192 阅读 · 0 评论 -
结合源码和常量池详解Java中的String
本篇对String结合源码和常量池进行总结String是java中一个常用的引用类型。先看String源码:所以String底层是由char[]数组存储数据的。那么String的最大长度应该是多少呢?由于String底层是char[]数组,所以其允许的长度是固定的, 由于char[]数组的元素是由下标来定位的,而下标的类型为int,所以char最多只能表示2^31 - 1(2G-1),也就是说st...原创 2016-07-16 23:35:10 · 437 阅读 · 0 评论