java学习笔记
温暖的小柯南
路漫漫其修远兮,吾将上下而求索
展开
-
JVM学习笔记
主要内容:1.虚拟机运行时数据区2.哪些内存需要回收3.常用垃圾收集算法4.常用垃圾收集器5.GC什么时候触发一、虚拟机运行时数据区 介绍的是JDK1.8 JVM运行时内存数据区域划分。1.8同1.7比,最大的差别就是:元数据区取代了永久代(方法区)。元空间的本质和永久代类似,都是对JVM规范中方法区的实现。不过元空间与永久代之间最大的区别在于:元数据空间并不在虚拟机中,而是使用...原创 2018-11-23 15:05:25 · 251 阅读 · 0 评论 -
java学习初探十七之IO流_FileOutputStream
1.import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class StreamTest06 { public static void main(String[] args) { FileOutputStream fil原创 2017-10-28 15:17:29 · 263 阅读 · 0 评论 -
java学习初探十七之IO流_FileInputStream
1.FileInputStreamimport java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;public class StreamTest { public static void main(String[] args) { FileInpu原创 2017-10-09 22:34:04 · 317 阅读 · 0 评论 -
java学习初探十三之集合Collection常用方法
1.Collection常用方法 (1)import java.util.ArrayList;import java.util.Collection;/* boolean add(Object element) 向集合中添加元素 */public class CollectionTest02 { public static void main(String[] arg原创 2017-09-12 23:26:51 · 264 阅读 · 0 评论 -
java学习初探十三之集合
一、集合分为两部分(Collection和Map) 1.Collection 只能存储引用类型,并且只能单个存储。 (1)Collection继承结构图 List存储元素的特点:有序可重复,存进去什么顺序取出来还是什么顺序。 Set存储元素的特点:无序,不可重复。存进去的时候是一个顺序,取出的时候不一定什么顺序了。 SortedSet存储元素的特点:无序,不可重复。但是存储进去的元素原创 2017-09-11 23:43:11 · 285 阅读 · 0 评论 -
java学习初探七之异常处理
1.异常的基本概念 (1)异常是什么? 第一,异常模拟的是现实世界中“不正常“的事件。 第二,java中采用“类”去模拟异常。 第三,类是可以创建对象的。 NullpointerException e=0x1234; e是引用类型,e中保存的内存地址指向堆中的“对象”,这个对象一定是NullpointerException 类型。这个对象就表示真实存在的异原创 2017-08-31 23:38:45 · 332 阅读 · 0 评论 -
java学习初探十七之IO流
1.流的本质 流根据方向可以分为,输入流和输出流。注意,输入和输出是相对于内存而言的。从内存出来就是输出,到内存中就是输入。输入流又叫做InputStream,输出流又叫做OutStream。输入还叫做“读read”,输出还叫做,’写write’。 流根据读取数据的方式可以分为,字节流和字符流,字节流是按照字节的方式读取,字符流是按照字符的方式读取,一次读取2个字节。java中一个字符占2个字节原创 2017-09-27 00:07:16 · 318 阅读 · 0 评论 -
java学习初探十二之常用类_数字_随机数_枚举
1.数字 (1)java.text.DecimalFormatimport java.text.DecimalFormat;/* * 关于数字格式化 java.text.DecimalFromat * 数字格式元素 * # 任意数字 * , 千分位 * . 小数点 * 0 不够补0 */public class NumberTest { public static原创 2017-09-11 01:27:34 · 428 阅读 · 0 评论 -
java学习初探十一之日期处理
1.获取自 1970年1月1日 00时00分000毫秒 到当前的毫秒数 2.Date日期格式化String 3.String日期 转Dateimport java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class DateTest { public stat原创 2017-09-10 23:24:47 · 331 阅读 · 0 评论 -
java学习初探十之包装类
1java中八种基本数据类型对应的包装类 基本数据类型 包装类型 byte - java.lang.Byte short - java.lang.Short int - java.lang.Integer long - java.lang.Longfloat原创 2017-09-10 01:18:23 · 322 阅读 · 0 评论 -
java学习初探十六之增强for、foreach
语法: 增强for循环(类型 变量:数组名/集合名){} 注:集合要想使用增强循环这种语法,集合需要使用泛型 如果不使用泛型,需要用Object类型定义集合中元素 增强for循环缺点:没有下标。package fanxing;import java.util.ArrayList;import java.util.HashSet;import java.util.List;import原创 2017-09-16 17:17:46 · 324 阅读 · 0 评论 -
java学习初探十八之线程的调度与控制_优先级
一、线程优先级 通常我们的计算机只有个cpu,cpu在某一个时刻只能得到cup时间片,也就是使用权,才可以执行指令。在单cpu的机器上线程不是并行运行的,只有在多个cpu上线程才可以并行运行。java虚拟机要负责线程的调度,取得cpu的使用权,目前有两种调度模型:分时调度模型和抢占式调度模型,java使用抢占式调度模型。 分时调度模型:所有线程轮流使用cpu的使用原创 2017-12-19 20:01:27 · 280 阅读 · 0 评论 -
java学习初探十八之线程的调度与控制_sleep
1.sleep基本用法package ThreadTest;/* 1.Thread.sleep(毫秒) 2.sleep方法是一个静态方法 3.该方法作用是阻塞当前线程,腾出cpu,让给其他线程 */public class ThreadTest6 { public static void main(String[] args) { Thread原创 2017-12-19 20:43:10 · 262 阅读 · 0 评论 -
线程池封装使用笔记
1.线程池基本原理和方法说明: https://www.cnblogs.com/exe19/p/5359885.html 2.定义枚举类public enum CommonThreadPool { INSTANCE; private ExecutorService instance; CommonThreadPool(){ instance=new...原创 2018-07-23 10:42:06 · 263 阅读 · 0 评论 -
java初探十九之反射_可变长参数
可变长参数:package fanshe2;import java.util.Date;import java.util.Timer;/** * 关于java中的可变长参数 * * */public class fanshe1 { //m1方法有一个int类型可变长参数 public static void m1(int... a) {//m1方法在调原创 2018-01-04 19:38:26 · 648 阅读 · 0 评论 -
java初探十九之反射_Class
1.反射机制中的类 java.lang.Class; java.lang.reflect.Constructor;//构造方法 java.lang.reflect.Field;//属性 java.lang.reflect.Method;//方法 java.lang.reflect.Modifier;//修饰符 2.反射机制的作用: (1)反编译: .class–>.java原创 2018-01-02 19:53:43 · 352 阅读 · 0 评论 -
java学习初探十八之线程的Timer定时器
定时器package xiancheng2;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Timer;import java.util.TimerTask;/* * 定时器:每隔一段固定的时间,执行一段代码。 */publi原创 2017-12-27 20:42:25 · 340 阅读 · 0 评论 -
java学习初探十八之线程的守护线程
守护线程package xiancheng2;/* * 守护线程: * 其他所有的用户线程结束,则守护线程退出! * 守护线程一般都是无限执行的 */public class ThreadTest4 { public static void main(String[] args) throws InterruptedException { Thread t1=ne原创 2017-12-27 20:18:44 · 248 阅读 · 0 评论 -
java学习初探十八之线程的线程同步_锁机制_synchronized
一、线程同步 异步线程模型:t1线程执行t1的,t2线程执行t2的,两个线程之间谁也不等谁。 同步线程模型:t1线程和t2线程执行,当t1线程必须等t2线程执行结束之后,t1线程才能执行。什么时候要同步?为什么要引入线程同步?1.为了数据的安全。尽管应用程序的使用率降低,但是为了保证数据是安全的,必须加入线程同步机制。线程同步机制使程序变成了(等同)单线程2.原创 2017-12-21 20:00:23 · 276 阅读 · 0 评论 -
java学习初探十八之线程的生命周期
线程生命周期:原创 2017-12-18 20:34:22 · 327 阅读 · 0 评论 -
java学习初探十八之线程的创建和启动
1.线程的创建和启动(Thread类):package ThreadTest;/* 在java语言中实现多线程的第一种方式 第一步:继承java.lang.Thread; 第二步:重写run方法 三个知识点: 如果定义线程? 如何创建线程? 如果启动线程? */public class ThreadTest2原创 2017-12-18 20:18:36 · 249 阅读 · 0 评论 -
java学习初探十八之线程和进程的区别
一、多线程的基本概念: 1.什么是进程? 一个进程对应一个应用程序。例如:在windows操作系统中启动word,就表示启动了一个进程;在java的开发环境下启动jvm,就启动了一个进程。现代的计算机都是支持多进程的,在同一个操作系统中,可以同时启动多个进程。 2.多进程的作用 单进程计算机只能做一件事情。 玩电脑,一边玩游戏(游戏进原创 2017-12-18 19:33:42 · 328 阅读 · 0 评论 -
java学习初探十八之线程的调度与控制_让位yield_合并jion
1.yield,它与sleep类似,只是不能由用户指定暂停多长时间,并且yield方法只能让同优先级的程序有执行的机会。package ThreadTest;/* Thread.yield() 1.该方法是一个静态方法 2.作用,给同一个优先级的线程让位,但是让位时间不确定 */public class ThreadTest10 { public static原创 2017-12-20 19:47:16 · 322 阅读 · 0 评论 -
java学习初探十五之泛型
一、泛型(编译期概念) 1为什么引入泛型? (1)可以统一集合中的数据类型 (2)可以减少强制类型转换 2.泛型语法如何实现? 3.泛型的优点和缺点? 优点:统一类型,减少强制转换。 缺点:只能存储一种类型。以下程序没有使用泛型,缺点? 如果集合不使用类型,则集合中的元素类型不统一。在遍历集合的时候,只能拿出Object类型,需要做大量的强制类型转换。麻烦。p原创 2017-09-16 16:26:07 · 254 阅读 · 0 评论 -
java学习初探十四之Collections工具类
java.util.Collections集合工具类 java.util.Collection集合接口 (1)Collections.sort(Listlist);//对list排序 可以对集合中的元素排序,但是集合中自定义的对象元素必须是可比较的,必须实现Comparable接口 (2)Set–>List Set s=new HashSet<>(); List list=new原创 2017-09-16 01:26:07 · 227 阅读 · 0 评论 -
java学习初探十三之集合—Map详解
1.关于Map集合中常用的方法 void clear():清空Map boolean containsKey(Object key):判断Map中是否包含这样的key boolean containsValue(Object value);判断Map中是否包含这样的value Setimport java.util.Collection;import java.util.HashMap;原创 2017-09-15 23:12:58 · 260 阅读 · 0 评论 -
java学习初探5之构造方法
1.java类的构造方法 (1)构造方法语法 构造方法的作用:创建对象、初始化成员变量。 构造方法主要是用来创建类的实例化对象,可以完成创建实例化对象的初始化工作。 声明格式:构造方法修饰词列表 类名(方法参数列表) 构造方法修饰词列表:public proteced private 类的构造方法和普通方法一样可以重载。public class User{private int age原创 2017-08-14 23:56:08 · 268 阅读 · 0 评论 -
java学习初探2之语言基础(3)
1.运算符 算术运算符:+、-、 *、 /、 ++、 –、 % ++ :自加1,int m=10;int e=m++;//++如果出现在变量后面,先赋值,后自加1System.out.println("e="+e);//10System.out.println("m="+m);//11int c=10;int d=++c;//++如果出现在变量前面,先自加1,后赋值Sys原创 2017-08-03 18:44:32 · 265 阅读 · 0 评论 -
java学习初探4之类的定义
1.面向对象分为三个部分 OOA面向对象的分销 OOD面向对象的设计 OOP面向对象的编程 2.UML:统一建模语言 UML工具:rational rose、visio 3.类的定义 类=属性+方法 成员变量(没有static修饰的属性)是对象级别的,必须先有对象才能访问,不能使用类直接访问。 (1)创建类Student的对象 stu1是一个局部变量,引用heap(堆)中的S原创 2017-08-13 22:36:37 · 265 阅读 · 0 评论 -
java实现contains和indexof方法说明区别
contains和indexof都可以作为判断是否包含的方法,这里用代码输出说明两者的不同,代码如下:public class ContainOrIndexof { public static void main(String[] args) { String a="abcdefghijklmn"; String b="defghi"; Str原创 2017-08-18 15:42:31 · 6560 阅读 · 0 评论 -
java字符串截取方法实现
import java.util.StringTokenizer;public class StringJieque {public static void main(String[] args) { /* * (1)String Tokenizer方法 */ StringTokenizer string_jiequ1=new StringTokenizer("原创 2017-08-11 11:25:14 · 462 阅读 · 0 评论 -
java学习初探2之语言基础(2)
1.数据类型 (1)基本类型 数值类型:整数型(byte short int long)、浮点型(float double) 字符类型:char 布尔类型:(boolean,只能为true或false) (2)引用数据类型 数组 类 接口 重点:字符串也为引用数据类型 2.数据类型占用字节数(1字节=8位) byte:1 short:2 int:4 long:8 flo原创 2017-08-03 18:17:10 · 228 阅读 · 0 评论 -
java学习初探5之this关键字
1.this是什么 this是一个引用类型,保存了内存地址,在堆中每个java对象都有this,this保存内存地址指向自身。 2.this用在哪些地方 (1)成员方法中 this用在成员方法中,谁去调用成员方法,this就代表谁。this指的是当前对象。注:this.可以省略。 (2)构造方法中 同上原创 2017-08-16 00:25:13 · 221 阅读 · 0 评论 -
java学习初探3之方法使用
1.方法重载 overload 优点:(1)程序员不需要记忆多个方法名,方便调用。 (2)代码更加美观。 什么时候会发生方法的重载? (1)发生在同一个类中, (2)方法名相同, (3)参数列表不同(类型,个数,顺序) (4)和返回值类型无关 (5)和方法的修饰符列表无关 方法重复错误、方法的重载和方法的返回值类型无关。 System.out.println(); syste原创 2017-08-08 20:58:16 · 259 阅读 · 0 评论 -
java学习初探2之语言基础
1.java注释 //单行注释 /* * 多行注释 */ //* * 多行注释,该注释可以被javadoc解析成帮助文档 *// 2.public class和class的区别 一个.java源文件中可以定义多个class,并且一个class会生成一个.class文件。.java源文件中可以没有public的class。 public的class必须和文件名保持一致。如果定义pu原创 2017-08-01 22:41:50 · 301 阅读 · 0 评论 -
java学习初探1
java学前准备: 1.了解cmd的常用命令 cd:切换路径 dir:查看盘下问下 cls:清屏 ipconfig:查看ip 2.计算机语言简史 (1)机器语言 0 1 (2)低级语音 汇编 3.高级语言 java等 java面向对象,c面向过程,c++一半面向过程,一半面向对象。 JAVA SE java的标准版,JAVA EE java的企业版,JAVA ME java的微原创 2017-07-30 23:58:30 · 347 阅读 · 0 评论 -
java学习初探6之继承 方法覆盖 多态
1.继承 引入类继承最基本的作用是:代码重用。 注:构造方法无法被子类继承 语法:【修饰符列表】class 子类名 extends 父类名{ 类体} java语言中,只支持单继承。A继承B,不能同时继承C。 一个类如果没有显示的继承其他类,则该类默认继承java.lang.Object。Object是sun提供的基类。 父类、超类、基类、superclass 子类、派生类、subcl原创 2017-08-22 23:06:31 · 469 阅读 · 0 评论 -
java学习初探八之数组一维数组、二维数组
1.数组 (1)数组是一种引用类型。 (2)数组是一种简单的数据结构,线性的结构。 (3)数组是一个容器,可以用来存储其他元素。 数组是可以存储任意数据类型的元素。 (4)数组分为:一维数组、二维数组、三维数组、多维数组。 (5)数组中存储的元素类型是统一的。 (6)数组长度不可改变,数组一旦创建,长度是不可改变的,固定的。 数组优点:查找效率高。因为数组中的存储元素的类型是统一的,原创 2017-09-03 01:27:54 · 692 阅读 · 0 评论 -
java学习初探九之StringBuffer、StringBuilder
1.StringBuffer、StringBuilder 是一个字符串缓冲区2.工作原理 预先在内存中申请一块空间,以容纳字符序列,3.String同StringBuffer、StringBuilder的区别 String 是不可变的字符序列,存储在字符串常量池中。 StringBuffer、StringBuilder底层是一个char数组,但是该char数组可变,并且,可以自原创 2017-09-08 01:50:00 · 373 阅读 · 0 评论 -
java学习初探九之String
一、String简介 1.String类是不可变类,也就是说,String对象声明后,将不可修改。 2.提升字符串的访问效率,在程序中使用了“缓存”技术。所以,在java中所有使用“双引号”括起来的字符串都会在“字符串常量池”中创建一份,字符串常量池在方法区中被存储。 3.在执行过程中,如果程序用到某个字符串,例如“abc”,那么程序会在字符串常量池中去搜索该字符串,如果程序没有找到则在字符串原创 2017-09-07 23:44:17 · 294 阅读 · 0 评论