
java
DimplesDimples.
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HashMap的底层原理
HashMap的底层原理HashMap底层是数组+链表或者是数组+红黑树,当我们向HashMap中put元素的时候,先根据key的hashcode重新计算hash值,根据hash值得到这个元素在数组中的位置(即下标),如果数组在该位置上已经存放有其他元素了,那么在这个位置上的元素将以链表的形式存放,新加入的放在链头,最先加入的放在尾,如果链表的长度超过8,则将链表转换成红黑树。如果数组该位置...原创 2019-12-25 15:02:11 · 254 阅读 · 0 评论 -
List集合中的subList(int fromIndex,int endIndex)方法
List<E> subList(int fromIndex,int endIndex):返回此集合中的一部分视图,即截取子集,从fromIndex到endIndex,包前不包后,返回的集合引用的是原集合的一部分,所以对sublist操作就是在对list进行操作。如果截取之后再对list操作,就不能操作subList,subList已经失效。...原创 2018-08-27 18:34:32 · 1263 阅读 · 0 评论 -
Exception
1.子类在重写带有异常声明的方法时,子类可以不声明异常,也可以声明父类声明异常的子类型异常。如果父类没有声明异常,子类绝不能声明异常。2.throw可以抛出任何异常,如果是运行时异常对象时,不必在方法上声明异常;如果是编译时异常对象,则必须在方法上声明异常。...原创 2018-08-27 18:33:26 · 247 阅读 · 0 评论 -
进程、线程、并发
1.进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统...原创 2018-08-27 18:12:00 · 299 阅读 · 0 评论 -
String类型
特点: (1)是不可变的字符串类型(不可变:对象的内容不能更改) (2)final修饰的类型,不能被重写 (3)字符索引从0开始 (4)重写了equals方法和toString方法 (5)默认使用的是Unicode字符集,任意字符占两个字节构造器: String(): 创建一个空字符序列的字符串对象。 String(byte[] bs) 创建一个字符串...原创 2018-08-13 18:51:17 · 293 阅读 · 0 评论 -
StringBuilder(可变字符串类型)与StringBuffer
运行速度:StringBuilder > StringBuffer > StringStringBuffer:final修饰的类。默认构造器是由系统自动分配容量,默认是16个字符。由于没有赋值,所以缓冲对象的长度就是0。StringBuffer sbf=new StringBuffer(100);设定容量大小的构造器StringBuffer append(Tpye...原创 2018-08-13 18:40:57 · 406 阅读 · 0 评论 -
内存管理机制
内存管理: jvm将内存分成三大主要区域:堆,栈,方法区,用来存储数据。 堆:堆中主要存储引用类型对象,给成员变量分配空间。 栈:jvm在执行程序时,在栈中会为每一个方法都提供存储空间叫栈帧,用来存储方法中的局部变量。 方法区:用来存储jvm加载的字节码文件的信息(类的信息)包含类的方法,方法只有一份,堆中的对象共享这份方法。在使用非static修饰...原创 2018-08-02 23:42:01 · 169 阅读 · 0 评论 -
常用的包
package:包 作用:用于管理源文件,区分类全名。 命名规则:域名后缀.域名.项目名.模块名 声明位置:在源文件的首行首句。java.lang.*;因为里面的类型都非常常用。因此不需要导包。java.util.*;此包下封装了很多常用的工具类。java.io.*;此包下封装了io流的类型。java.net.*;此包下封装很多关于网络的多种类...原创 2018-08-02 23:18:45 · 167 阅读 · 0 评论 -
final关键字 常量
修饰词:final 最终的最后的(1)修饰类:final修饰的类不可以被继承。(2)修饰成员变量:可以直接初始化,也可以在构造器中初始化,除了以上两种情况不能在其他任何地方再次赋值,只可赋值一次。(3)修饰局部变量:只能初始化一次。 public void run(final int x) { //x=1;//编译错误,被调用时是第...原创 2018-08-02 23:08:47 · 1038 阅读 · 0 评论 -
访问权限控制修饰词
种类 同一类 同包不同类 不同包子类 不同包非子类 public true true true true protected true true true false 默认(default) true true false false private true false ...原创 2018-08-02 22:54:24 · 274 阅读 · 0 评论 -
Object
Object:是所有类型的顶级父类。系统都会默认使引用类型extends Object此类中的提供了5中方法:toString() equals() clone() hashcode() finalize()常用的有:toString() equals()类的类名和类全名: 类名:即最短的名称。 类全名:从包名开始写的名称。eg:String是类名 java....原创 2018-08-02 22:33:20 · 231 阅读 · 0 评论 -
异常
异常的体系:Throwable:无论是error还是Exception,问题发生就可以抛出,让调用者知道并处理。该体系的特点就在于Throwable及其所有的子类都具有可抛性。可抛性的体现:throws throw,凡是可以被这两个关键字所操作的类和对象都具备可抛性。Throwable中两个子类:Exception和Error的子类名都是以父类名作为后缀。---Error 通...原创 2018-08-14 22:59:50 · 291 阅读 · 0 评论 -
API文档
概念:应用程序编程接口,即jdk文档手册,里面以类的形式提供了很多常用的功能。常用的包与类: java.lang包:因为常用,所以不需要导包。 java.util包:数组工具类,日期,集合等。 java.net包:网络相关的类型。 java.io包:输入输出类型 java.math包:数学应用的相关类型打包工具:javadoc (...原创 2018-08-14 22:29:57 · 347 阅读 · 0 评论 -
包装类
java语言是面向对象语言,而基本数据类型非对象,但是有时需要将其转换成对象进行使用,所以我们可以将基本数据类型包装成引用类型。每一个基本数据类型都对应一个包装类:byte-------------Byteshort-----------Shortint-------------Integerlong------------Longfloat------------Floa...原创 2018-08-14 22:17:29 · 191 阅读 · 0 评论 -
正则表达式
概念:可以通过正则表达式对一些字符进行匹配,查找,替换的复杂的操作。他是一个有特殊意义的字符串定义了一种校验规则。常用字符集: []:表示匹配括号内的一个字符。 [abc]:表示匹配abc中的任意一个 字符 [a-z]:表示匹配a-z中的任意一个字符 [0-9]:表示匹配0-9中的任意一个字符 [a-zA-Z0-9]:表示匹配这些字符中的任意一个字...原创 2018-08-14 22:04:16 · 188 阅读 · 0 评论 -
方法的定义、使用以及引用数据类型和基本数据类型的区别
方法的概念:方法就是功能,封装了一段逻辑代码。 方法的定义: 固定语法:修饰词 返回值类型 方法名(形式参数){逻辑代码} 方法的位置:在类体中,与main方法是并列关系,类体中可以有多个方法。修饰词:(1)public----公共的 (2)protected---受保护的 (3)pr...原创 2018-08-14 21:25:40 · 540 阅读 · 0 评论 -
面向对象(继承,封装,多态)
1.封装是指将某事物的属性和行为包装到对象中,这个对象只对外公布需要公开的属性和行为,而这个公布也是可以有选择性的公布给其它对象。在java中能使用private、protected、public三种修饰符或不用(即默认defalut)对外部对象访问该对象的属性和行为进行限制。2.继承继承提高了代码的复用性,提高了软件的开发效率。让类与类之间产生关系,这个是实现多态的前提。java不支持...原创 2018-08-28 09:29:38 · 428 阅读 · 0 评论 -
Collections中常用方法
1、排序方法Collections.sort(List<E> list)想使用此方法,两种方式。注意:Collections.sort(List<E> list);此方法中参数类型为List。这说明此方法只能对list集合中的元素进行排序。一、在自定义类型(E)中实现Comparable<E>接口,重写其中的compareTo()方法,这样Coll...原创 2018-08-30 19:12:22 · 6796 阅读 · 0 评论 -
线程创建的三种方式
(1)继承Thread类,重写run方法,调用start方法,启动线程进入就绪状态。public class ThreadDemo01 { public static void main(String[] args) { //创建线程对象,启动任务 Thread t1 = new MyTask(); Thread t2 = new MyTask(); t1.start();...原创 2018-08-28 09:58:45 · 227 阅读 · 0 评论 -
类中存在的几种关系
USES-A:依赖关系,A类会用到B类,这种关系具有偶然性,临时性。但B类的变化会影响A类。这种在代码中的体现为:A类方法中的参数包含了B类。关联关系:A类会用到B类,这是一种强依赖关系,是长期的并非偶然。在代码中的表现为:A类的成员变量中含有B类。HAS-A:聚合关系,拥有关系,是关联关系的一种特例,是整体和部分的关系。比如鸟群和鸟的关系是聚合关系,鸟群中每个部分都是鸟。IS-A:...原创 2018-12-05 08:23:11 · 376 阅读 · 0 评论 -
JVM垃圾回收器
这里讨论的收集器基于JDK1.7Update 14之后的HotSpot虚拟机,这个虚拟机包含的所有收集器如下图3-5所示: 上图展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明它们可以搭配使用。1.Serial收集器Serial收集器是最基本、发展历史最悠久的收集器。是单线程的收集器。它在进行垃圾收集时,必须暂停其他所有的工作线程,直到它收集完成。Se...原创 2018-12-02 17:16:22 · 240 阅读 · 0 评论 -
java对象的初始化
public class B{ public static B t1 = new B(); public static B t2 = new B(); { System.out.println("构造块"); } static{ System.out.println("静态块"); } public stat...原创 2018-11-22 08:23:13 · 240 阅读 · 0 评论 -
Collection中 Object[] toArray()和 T[] toArray(T[])方法
1、Object[] toArray(): 返回一个包含此集合中所有元素的数组。 List<String> list = new ArrayList<String>(); list.add("betty"); list.add("sweeney"); list.add("钟"); list.add("左"); Object[] obj原创 2018-09-12 09:58:57 · 3719 阅读 · 0 评论 -
Date Calendar SimpleDateFormat
Date:Date类负责时间的表示,在计算机中,时间的表示是一个较大的概念,现有的系统基本都是利用从1970.1.1 00:00:00 到当前时间的毫秒数进行计时,这个时间称为epoch。在后文中如果没有明确说明,毫秒数就是指从1970年到对应时间的毫秒数。在Java 的Date类内部其实也是一个毫秒数,对外表现为一个Date对象。常用的构造方法:Date( )Date(long...原创 2018-09-03 20:59:24 · 239 阅读 · 0 评论 -
集合----技巧
需要元素的唯一吗?------需要: Set --------需要制定顺序吗? ------需要:TreeSet ------不需要:HashSet ------需要取出顺序与存储顺序一致的:LinkedHashSet------不需要: List --...原创 2018-09-02 19:27:17 · 256 阅读 · 0 评论 -
集合(Map)
Map集合:一次添加一对元素。也称为双列集合,而Collection为单列集合。特点:Map集合中存储的是键值对。Map集合中必须保证key(键)的唯一性。Map集合中key可以为null,value也可以为null。Map集合中key和value都必须是引用数据类型。Map存储机制:Map是基于数组和链表的数据结构进行存储数据。常用方法:1、添加:V put(...原创 2018-08-30 18:29:20 · 412 阅读 · 0 评论 -
集合(Collection)
集合框架图:集合类的由来:对象用于封装特有数据,但是一旦对象变多,则需要被存储,对象的个数不确定时,需要使用集合容器来进行存储。集合的特点:1、集合的长度是可变的。2、集合中存储的是(对象)引用类型数据,不可存储基本数据类型数据。集合框架的形成:集合容器因为内部结构不同,并且有多种集合容器,所以被不断向上抽取形成了集合框架。集合框架的顶级父类为Collection接口:...原创 2018-08-30 01:10:34 · 425 阅读 · 0 评论 -
同步锁 (synchronized)
调用方法:类名.class,每一种类都有一个唯一的类对象 。 异步操作:多线程的并发操作,相当于各干各的。 同步操作:相当于一个做完,另一个再做。锁机制:当一个线程进入同步的代码块后,就会获得锁对象的使用权。其他线 程如果执行到此处,会发现锁对象被占用,只能处于等待状态(锁池), 当线程执行完同步的代码后或者出现异常,都会自动释放锁。同步代...原创 2018-08-29 08:56:50 · 1682 阅读 · 0 评论 -
线程优先级的设定
线程的优先级:1-10,10为最高级别,1为最低级别,5为默认级别Thread.MIN_PRIORITY--最小优先级Thread.MAX_PRIORITY--最高优先级Thread.NORM_PRIORITY--默认优先级设置优先级:public class JoinThread2 { public static void main(String[] args) { Th...原创 2018-08-28 13:49:28 · 2622 阅读 · 0 评论 -
Thead.yield()静态方法
static void yield()-----想让哪个线程后执行,就写到哪个线程里。只能提高处理器分配时间片段几率。 线程对象让步的功能:让出时间片段,此线程进入就绪状态。package test.core.threads; public class YieldExample{ public static void main(String[] args) {...原创 2018-08-28 12:37:34 · 625 阅读 · 0 评论 -
线程中sleep()方法(静态方法)与interrupt()方法(非静态方法)
sleep(long time):调用此方法的线程将会处于睡眠状态,它还是具有CPU执行权的,只不过程序在此停留,超时后,该线程又回到就绪状态,如果被打断,会出现编译时异常InterruptedException。interrupt():如若线程调用此方法会中断该线程中阻塞状态。...原创 2018-08-28 10:52:53 · 560 阅读 · 0 评论 -
IO流
一、OutputStream抽象类: void close(); void flush();//刷新,作用是将缓冲区中的数据写进目的地。 void write(int b);写一个字节 void write(byte[] b);写一个字节数组 void write(byte[] b,int off,int len);...原创 2018-08-28 10:34:38 · 326 阅读 · 0 评论 -
守护线程(Daemon thread)
守护线程::线程分两类,一类是普通线程(前台线程), 一类是守护线程(后台线程)。 当线程只剩下守护线程后,所有线程都结束。设置守护线程的方法:即将变成守护线程的对象.setDaemon(true);public class DaemonThread { public static void main(String[] args) {...原创 2018-08-28 10:17:46 · 732 阅读 · 0 评论 -
线程中join方法
join(): 作用是将当前线程插入到某一个线程中,使某一个线程进入阻塞状态。 当前线程执行完后,另一个线程进入就绪状态。如图:将t1线程插入到t2线程中,使t2线程进入阻塞状态,当t1线程执行完之后,t2线程则进入就绪状态,等待被分配时间片段。public class JoinThread { public static void main(String[] args...原创 2018-08-28 10:09:21 · 306 阅读 · 0 评论 -
空指针异常
空指针异常: java.lang.NullPointerException 在程序运行时,可能会出现此异常,出现的原因: Car c = new Car(); System.out.println(c.color);//0 Car c = null; System.out.println(c.color);//就会出现空指针异常。 ...原创 2018-08-14 21:22:43 · 2066 阅读 · 0 评论 -
值传递 址传递
基本数据类型的变量与引用类型的变量: 值传递: 基本数据类型的变量里存储的是基本数据类型的数据,int a = 5;int b = a;//将a里的数据复制了一份传递给了b。 址传递: 引用类型的变量里存储的是对象的地址信息 Car c = new Car(); Car d = c;//将c里的地址信息...原创 2018-08-14 21:22:26 · 218 阅读 · 0 评论 -
选择排序实例
import java.util.Arrays;public class a{ public static void main(String[] args){ int[] arr = {5,3,1,2,9,4}; for(int i=0;i<arr.length-1;i++){ for(int j=i+1;j<arr....原创 2018-07-25 21:52:03 · 317 阅读 · 0 评论 -
冒泡排序实例
public class a{ public static void main(String[] args){ int[] arr = {5,3,1,2,9,4}; for(int i=0;i<arr.length-1;i++){ for(int j=0;j<arr.length-1-i;j++){ ...原创 2018-07-25 21:48:40 · 340 阅读 · 0 评论 -
冒泡排序 选择排序 简单选择排序 array.sort(数组名)
冒泡排序的基本思想: 在要排序的数组中,对当前还未排好序的范围 内的全部数,自上而下(自左到右)对相邻的两 个数依次进行比较和调整,让较大的往下沉( 或向右移),较小的往上冒(或向左移)。即: 每当两相邻的数比较后他们的顺序与排序要求相反时,就将他们互换。冒泡排序的改进: 对冒泡排序的常见的改进方法是 加入一个标志性的变量,用于标志某一轮排序过程中是否有...原创 2018-07-25 21:36:44 · 293 阅读 · 0 评论 -
对象的内存图解
对象放在堆里:对象产生时会在堆里开辟一块空间,这个空间会产生一个地址,变量p存在栈中,如果这个p想要给堆里的成员变量赋值,空间把地址赋给变量p,p通过地址,指向了堆中的对象。然后完成赋值。...原创 2018-07-28 17:57:22 · 249 阅读 · 0 评论