![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java SE
不会爬墙的岛田
这个作者很懒,什么都没留下…
展开
-
JVM学习笔记(一):初探JVM
JVM学习笔记1. JVM的体系结构 JVM是建立在操作系统之上的一个虚拟机。通过在实际计算机模仿各种计算机功能来实现的,组成部分包括堆、方法区、栈、本地方法栈、程序计算器等部分组成的,其中方法回收堆和方法区是共享区,也就是谁都可以使用,而栈和程序计算器、本地方法栈区是归JVM的。 JVM的体系结构如图所示: 其中需要注意的是,垃圾回收作用的对象是堆内存和本地方法区,而栈内存中绝对不会有垃圾。因为栈中的方法执行完会弹栈消失,且main方法会在栈底。如果栈中存在垃圾的话那么主方法将永远都不原创 2020-07-11 22:31:33 · 134 阅读 · 0 评论 -
Java学习笔记(二十五):反射与注解
Java学习笔记(二十五):反射和注解1.反射概述 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。这种动态获取类的信息以及动态调用对象的方法的功能称为java语言的反射机制。 要想解剖一个类,必须先要获取到该类的字节码文件对象。 而解剖使用的就是Class类中的方法,所以先要获取到每一个字节码文件对应的Class类型的对象。 获取class文件对象的三种方式:Object类的getClass()方法原创 2020-07-11 22:25:46 · 91 阅读 · 0 评论 -
Java SE综合练习题错误总结
Java SE练习题错误总结一、String类的引用指出下列程序运行的结果 (B)public class Example { String str = new String("good"); char[] ch = { 'a', 'b', 'c' }; public static void main(String args[]) { Example ex = new Example(); ex.change(ex.str, ex.ch);原创 2020-06-10 14:42:08 · 638 阅读 · 0 评论 -
Java中的各种锁详细介绍
Java中的各种锁详细介绍 转自:https://www.cnblogs.com/jyroy/p/11365935.htmlJava提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的...转载 2020-06-08 17:38:41 · 99 阅读 · 0 评论 -
Java学习笔记(二十四):多线程及其安全(二)
Java学习笔记(二十四):多线程及其安全(二)线程通信 Java中的线程通信可以通过一个生产者——商品——消费者模型来体现。 假设有一种商品,它由生产者生产,由消费者消耗。当商品有剩余时,生产者进入等待状态。而消费者则对商品进行消耗; 当商品被消耗完的时候,消费者进入等待状态,并且提醒正在等待的生产者进行生产。此时生产者被唤醒,进行商品的生产,生产完成后再次进入等待状态,并且提醒消费者商品被已经生产出来了,以此往复。 而在Java中,生产者和消费者就好比两个线程,他们通过商品进行通信。在原创 2020-06-07 21:11:25 · 141 阅读 · 0 评论 -
Java学习笔记(二十三):多线程及其安全
Java学习笔记(二十三):多线程进程 要了解线程,首先得明白进程。进程就是正在运行的程序,是系统进行资源分配和调用的独立单位。每一个进程都有它自己的内存空间和系统资源。 单进程计算机只能做一件事情。而我们现在的计算机都可以一边玩游戏(游戏进程),一边听音乐(音乐进程),所以我们常见的操作系统都是多进程操作系统。 对于单核计算机来讲,游戏进程和音乐进程并不是同时运行的。因为CPU在某个时间点上只能做一件事情,计算机是在游戏进程和音乐进程间做着频繁切换,且切换速度很快,所以我们感觉游戏和音乐在同原创 2020-06-06 20:34:46 · 175 阅读 · 0 评论 -
Java学习笔记(二十二):常用IO流及Properties
Java学习笔记(二十二):常用IO流及Properties数据输入输出流 该流属于字节流。有一个规律,一般以Stream结尾的流都是字节流。 该流的特点在于,与之前的字节流写入读取都是通过字节不同,该流可以直接写入和读取基本数据类型。数据输入流: DataInputStream(InputStream in)数据输出流: DataOutputStream(OutputStream out)public class Mytest { public static void main原创 2020-06-02 21:10:48 · 166 阅读 · 0 评论 -
Java学习笔记(二十一):IO流之字符流
Java学习笔记(二十一):IO流之字符流 由于字节流操作中文不是特别方便,所以java就提供了字符流。字符流 = 字节流 + 编码表。一、编解码 编码就是把字符串转换成字节数组,方法如下:public byte[] getBytes();使用平台的默认字符集将此 String编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 public byte[] getBytes(String charsetName) 使用指定的字符集将此 String 编码为 byte 序列,并将原创 2020-06-02 11:00:01 · 155 阅读 · 0 评论 -
Java学习笔记(二十):IO流之字节流
Java学习笔记(二十):IO流 IO流用来处理设备之间的数据传输,Java对数据的操作是通过流的方式。Java中用于操作流的对象都在IO包中。 IO流按照流向,分为输入流和输出流。按照数据类型分为:字节流:可以读写任何类型的文件。比如音频、视频 、文本文件;字符流:只能读写文本文件。如果数据所在的文件通过windows自带的记事本打开并能读懂里面的内容,就用字符流。其他用字节流。输出流超类OutputStream子类FileOutputStream一、构造方法FileOu原创 2020-05-24 22:52:30 · 113 阅读 · 0 评论 -
Java学习笔记(十九):IO流学习预备---异常和File类
Java学习笔记(十九):IO流学习预备–异常和File类异常一、概述 异常就是Java程序在运行过程中出现的错误。二、异常的继承体系异常的基类: Throwable严重问题: Error 不予处理,因为这种问题一般是很严重的问题,比如: 内存溢出非严重问题: Exception编译时异常: 非RuntimeException运行时异常: RuntimeException三、运行时异常RuntimeException main函数收到异常时,有两种处理方式:自己将原创 2020-05-24 22:51:58 · 149 阅读 · 0 评论 -
Java学习笔记(十九):HashMap和Hashtable
Java学习笔记(十九):HashMap和HashtableMap集合 用来操作“键 ---- 值”对应的数据,可以使用Map<K,V>接口。Map集合有以下几个常用实现类:HashMap,HashTable,LinkedHashMap,TreeMap等,将在下面一一介绍。 Map集合有以下特点:一个映射不能包含重复的键;一个 “键(K)” 只能映射到一个 “值(V)”,即每个键最多只能映射到一个值。 Map接口和Collection接口的不同点:Map是双列的,Col原创 2020-05-19 23:36:57 · 110 阅读 · 0 评论 -
Java学习笔记(十八):Set集合
Java学习笔记(十八):Set集合Set集合 Set集合与List不同的是,Set集合中的元素不能重复。HashSet集合一、特点:底层数据结构为哈希表(HashMap的实例),初始容量为16,加载因子0.75,元素无序(即数据的存储顺序不一致);不允许重复元素;线程不安全,效率高。二、HashSet保证元素唯一性的原理 当向 HashSet 集合中存入一个元素时,HashSet 会调用该对象的 hashCode() 方法来得到该对象的 hashCode 值,然后根据 hashC原创 2020-05-19 23:36:26 · 108 阅读 · 0 评论 -
Java学习笔记(十七):三大常用集合与泛型、增强for循环、可变参数
Java学习笔记(十七):三大常用集合与泛型、增强for循环、可变参数ArrayList特有功能://ArrayList存储字符串并遍历void forEach(Consumer<? super E> action);void forEach(new Consumer()){ public}执行特定动作的每一个元素的 Iterable直到所有元素都被处理或操作抛出异常。Vector一、概述 Vector 类可以实现可增长的对象数组 , Vector 是同步的。原创 2020-05-11 22:05:33 · 144 阅读 · 0 评论 -
Java学习笔记(十六):Collection集合及子类接口List
Java学习笔记(十六):Collection集合及子类接口ListCollection集合一、概念 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,Java就提供了集合类。二、数组和集合的区别长度区别:数组的长度是固定的而集合的长度是可变的;存储数据类型的区别:数组可以存储基本数据类型 , 也可以存储引用数据类型; 而集合只能存储引用数据类型,但是根据自动拆装箱规则,此条件并不能算作是集合的弊端。内容区别:数组只能存储同种数据类型的元素 ,集合可以存储不同引原创 2020-05-11 10:22:07 · 178 阅读 · 0 评论 -
Java学习笔记(十五):正则表达式、数字及日期类
正则表达式一、概念 正则表达式是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。其实就是一种规则,有自己特殊的应用。二、组成规则字符 x 字符 x。举例:'a'表示字符a \\ 反斜线字符。 \n 新行(换行)符 ('\u000A') \r 回车符 ('\u000D')字符类 [abc] a、b 或 c(简单类) [^abc] 任何字符,除了...原创 2020-05-05 10:43:23 · 196 阅读 · 0 评论 -
Java学习笔记(十四):Arrays类与Integer类、自动拆装箱
Arrays类常用方法public static String toString(int[] a)数组输出public static void sort(int[] a)数组排序public static int binarySearch(int[] a,int key)使用二分法寻找元素(注:此时数组必须是有序数组011)static boolean equals(...原创 2020-05-02 14:30:31 · 151 阅读 · 0 评论 -
Java学习笔记(十三):Scannner类与String类
Scannner类一、Scanner的构造方法原理 Scanner(InputStream source) System类下有一个静态的字段: public static final InputStream in; 标准的输入流,对应着键盘录入。二、hasNextXxx()和nextXxx()方法 判断录入数据类型的方法。... Scanner sc = new...原创 2020-05-01 22:39:09 · 344 阅读 · 0 评论 -
Java课堂笔记(二):常量、进制、编码以及变量
Java课堂笔记(二)常量在程序运行过程中,其值不会发生变化的量。 分为字面值常量和自定义常量 字面值常量:整数常量,小数常量,字符常量,布尔常量,字符串常量,null 定义:final 常量名=值; static final double PI =3.14进制与编码1.进制的表示 二进制:0b-- 八进制:0-- 十进制:默认 十六进制:0x-- 使用println...原创 2020-04-03 20:50:15 · 97 阅读 · 0 评论 -
Java学习笔记(三):数据类型转换及运算符
Java学习笔记(三):数据类型转换1.类型转换1.自动类型提升:当byte short char在参与运算时会自动提升为int类型。 如果还有long、float、double类型参与运算,则会相应的提升为long、float、double类型/*例1 byte a=10; byte b=20; byte c=a+b; 编译会报错,因为s,b参与运算时提升为int类型,b...原创 2020-04-03 20:51:15 · 117 阅读 · 0 评论 -
Java错误笔记:Operator cannot be applied to boolean,int
今天在学习 if 语句时写下了这样一段代码: if( 3<= i<= 5 ){ System.out.println("春天"); }else if( 6 <= i <= 8 ){ System.out.println("夏天"); }else if( 9 <=i <=11 ){ Sys...原创 2020-04-03 20:52:23 · 12983 阅读 · 2 评论 -
Java学习笔记(四):分支选择语句
Java学习笔记(四):分支选择语句与循环语句1.switch语句 switch语句注意事项: *switch语句支持的类型:byte,short,char,int. *1.5版本支持枚举类型,1.7之后支持字符串; *case后面只能写常量,不能写变量; *多个case值不能重复; *多个case项的数据类型要保持一致; *case语句穿透:当没有break时程序会继续往下执...原创 2020-04-06 21:08:20 · 186 阅读 · 0 评论 -
Java学习笔记(五):方法
Java学习笔记(五):方法 1. System.out.println 类 对象 方法 意思是调用System类里面的标准输出对象out中的println方法。 Java方法是指封装一段逻辑,以实现代码的复用性语句的集合,它们在一起执行一个功能。 *方法是解决一类问题的步骤的有序组合; *方法包含于类或者对象中; *方法在程序中被...原创 2020-04-06 21:09:00 · 111 阅读 · 0 评论 -
Java学习笔记(六):数组
数组1.概念:数组是相同数据类型数据的有序集合。描述的是相同类型的若干数据,按照一定的先后次序排列组合而成。数组可以存储基本数据类型和引用数据类型(数组,类,接口,枚举)。2.数组的声明int[] nums; //声明数组Java语言使用new操作符来创建数组,如:nums = new int[10]; //创建一个数组,分配内存空间获取数组长度:nums.length3....原创 2020-04-10 21:36:30 · 153 阅读 · 0 评论 -
Java学习笔记(七):面向对象之封装
面向对象1.什么是面向对象**本质:**以类的方式组织代码,以对象的组织(封装)数据。**三大特性:**封装 继承 多态2.static关键字 2.1 静态变量 static可以修饰成员变量,也可以修饰成员方法。static修饰成员变量,此变量就为一个共享变量,会被该类的所有对象所共享。所有对象都可以对其进行修改。 对于静态所修饰的成员,推荐使用类名调用。 static关键...原创 2020-04-17 13:32:58 · 100 阅读 · 0 评论 -
Java学习笔记(八):继承
Java学习笔记(八):继承一、代码块 static可以修饰成员变量,也可以修饰成员方法。static修饰成员变量,此变量就为一个共享变量,会被该类的所有对象所共享。所有对象都可以对其进行修改。 1.1 代码块概述在Java中,使用{}括起来的代码被称为代码块 1.2 代码块分类 根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块。 1.3 常见...原创 2020-04-17 23:02:15 · 79 阅读 · 0 评论 -
Java学习笔记(九): 多态及权限修饰符测试
一、概念 指的是同一事物在不同时期所表现的不同状态。二、多态前提要有继承关系。要有方法重写。 其实没有也是可以的,但是如果没有这个就没有意义。要有父类引用指向子类对象。即父 f = new 子();三、多态中的成员访问特点成员变量编译看左边,运行看左边。构造方法创建子类对象的时候,会访问父类的构造方法,对父类的数据进行初始化。成员方法编译看左边,运行看右边。...原创 2020-04-23 18:02:05 · 117 阅读 · 0 评论 -
Java学习笔记(十):接口及关键字总结
一、定义 为了体现事物功能的扩展性,Java中就提供了接口来定义这些额外功能。二、特性接口用关键字interface表示格式: interface 接口名 {}类实现接口用implements表示格式: class 类名 implements 接口名 {}接口不能实例化,需要按照多态的方式来实例化。如: 接口名 接口变量名 = new 类名();接口的子类...原创 2020-04-23 18:04:50 · 407 阅读 · 0 评论 -
Java学习笔记(十一):内部类
内部类一、概述 把类定义在其他类的内部,这个类就被称为内部类。二、成员内部类 共性:内部类可以直接访问外部类的成员,包括私有。外部类要访问内部类的成员,必须创建对象。特性:在测试类中访问成员内部类的成员: 外部类名.内部类名 对象名 = 外部类对象.内部类对象; Outer . Inner oi = new Outer()....原创 2020-04-26 23:48:58 · 116 阅读 · 0 评论 -
Java学习笔记(十二):Object类详解
一、概述 Object类是类层次结构的根类,所有类都直接或者间接的继承自该类。二、常用方法 1.hashCode()方法 public int hashCode()返回该对象的哈希码值。默认情况下,该方法会根据对象的地址来计算;不同对象的,hashCode()一般来说不会相同。但是,同一个对象的hashCode()值肯定相同;不是对象的实际地址值,可以理解为逻辑地址值。...原创 2020-04-26 23:49:44 · 138 阅读 · 0 评论