![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaSE进阶
wcs_csdn
这个作者很懒,什么都没留下…
展开
-
日期工具类
日期工具类import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/** * @author wcs * @date 2021/7/29 16:14 */public class DateTest01 { public static void main(String[] args) { Date d = new Date(); //时间戳原创 2021-07-29 17:20:34 · 56 阅读 · 0 评论 -
随机工具类
随机工具类java.util.Randomimport java.util.Random;/** * @author wcs * @date 2021/7/29 19:07 */public class RandomTest01 { public static void main(String[] args) { //随机类Random Random rand = new Random(); //true false 真假随机原创 2021-07-30 08:52:21 · 92 阅读 · 0 评论 -
Math工具类
Math工具类/** * @author wcs * @date 2021/7/29 19:32 */public class MathTest01 { public static void main(String[] args) { double pi=Math.PI; System.out.println(pi); //随机出一个0~1的double类型数字 System.out.println(Math原创 2021-07-30 14:59:08 · 55 阅读 · 0 评论 -
final 关键字
final 关键字1 final关键字采用final 修饰的类不能被继承采用final 修饰的方法不能被覆盖采用final 修饰的变量不能被修改final 修饰的变量必须显示初始化如果修饰的引用,那么这个引用只能指向一个对象,也就是说这个引用不能再次赋值, 但被指向的对象是可以修改的构造方法不能被final 修饰final一般修饰静态常量,被修饰的常量名建议大写,每个单词之间采用下划线衔接:static final String COUNTRY = "中国";static final原创 2021-08-14 14:49:29 · 70 阅读 · 0 评论 -
Java抽象类
抽象类1 抽象类概述抽象类也属于引用数据类型;采用abstract声明抽象类;抽象的方法只需在抽象类中,提供声明,不需要实现,起到了一个强制的约束作用,要求子类必须实现;如果这个类是抽象的,那么这个类被子类继承,抽象方法必须被覆盖。如果在子类中不覆盖该抽象方法,那么必须将此方法再次声明为抽象方法;抽象的类不能实例化;抽象类不能被final修饰;抽象方法不能被final修饰。2 采用abstract声明抽象类抽象类中可以有抽象方法,也可以没有抽象方法。但是抽象方法必须是在抽象类中。语原创 2021-08-16 14:13:58 · 189 阅读 · 0 评论 -
package和import
package和import1 package包其实就是目录,特别是项目比较大,Java文件特别多的情况下,我们应该分目录管理,在 Java中称为分包管理,不同功能的类分别存放在不同的包下。package是一个关键字,后面加包名。注意:package语句只允许出现在Java源代码的第一行,注释除外。包名命名规范: 包名称通常采用小写字母 包的命名应该有规则,不能重复,一般采用公司网站逆序, 如:com.wcs.项目名称.模块名称package com.wcs.part01;publi原创 2021-08-17 15:18:08 · 3097 阅读 · 1 评论 -
接口基础语法
接口的基础语法1 接口概述接口也是一种引用数据类型。编译之后也是一个class字节码文件。接口我们可以看作是抽象类的一种特殊情况,在接口只能定义抽象的方法和常量。在Java中接口采用interface声明接口的默认方法都是public abstract的,不能修改,可以省略接口中的变量默认都是public static final类型的,不能更改(可以省略),所以必须显示的初始化接口不能被实例化,接口中没有构造函数的概念接口之间可以继承,但接口之间不能实现接口中的方法只能通过类来实现,通原创 2021-08-18 10:46:29 · 346 阅读 · 0 评论 -
接口的进一步应用
1 接口可以使用多态//定义一个Animal接口public interface Animal { //抽象方法move() void move();}//Cat类实现接口Animalclass Cat implements Animal { //覆盖move()方法 public void move() { System.out.println("猫在走猫步"); }}//Bird类实现接口Animalclass Bird imple原创 2021-08-20 08:17:22 · 70 阅读 · 0 评论 -
访问控制权限
访问控制权限有哪些?private 私有的protected受保护的public公共的默认以上4个访问控制权限:控制范围是什么? private 表示私有的,只能在本类中访问 public 表示公开的,在哪里都可以访问public class User { //私有的 只能在本类中访问 private String name; //受保护的 protected int age; //公共的 public int id;}class原创 2021-08-21 10:10:00 · 164 阅读 · 0 评论 -
Object类
任何一个类默认继承Object。就算没有直接继承,最终也会间接继承。什么是API?应用程序编程接口。整个jdk的类库就是一个JavaSE的API。每个API都会配置一套API帮助文档。toString()方法toString()方法的默认实现是:类名@对象的内存地址转换为十六进制的形式。toString()方法的作用是通过调用这个方法可以将一个Java对象转换成字符串形式。public class ToStringTest { public static void main(Strin原创 2021-08-22 16:31:42 · 56 阅读 · 0 评论 -
匿名内部类
内部类概述什么是内部类? 在类的内部又定义了一个新的类。被称为内部类。内部类的分类: 静态内部类:类似于静态变量 实例内部类:类似于实例变量 局部内部类:类似于局部变量public class ClassTest { //这些类在类的内部,所以被称为内部类 //静态内部类 static class Inner1 { } //实例内部类 class Inner2 { } public void test() {原创 2021-08-23 14:12:36 · 1241 阅读 · 0 评论 -
String类
String表示字符串,属于引用数据类型,不属于基本数据类型;在Java中使用双引号括起来的都是String对象,是不可变的;使用双引号括起来的字符串,都是直接存储在“方法区”的“字符串常量池”中,因为字符型在实际开发中使用太频繁,为了执行效率所以把字符串放到了字符串常量池当中;//在字符串常量池中有三个字符串String s1 = "abcd";String s2 = "xyz" + "mn";String s1 = "hello";//"hello"是存储在方法区的字符串常量池当中.原创 2021-08-24 14:39:21 · 83 阅读 · 0 评论 -
StringBuffer
因为Java字符串是不可变的,每一次拼接都会产生新的字符串,这样会占用大量的方法区内存,造成内存空间的浪费。String s = "abc";s += "hello";//以上两行代码就导致在方法区字符串常量池中创建了3个对象//"abc" "hello" "abchello"如果以后需要大量字符串拼接的工作,建议使用StringBuffer、StringBuilder。StringBuffer 称为字符串缓冲区,它的工作原理是:预先申请一块内存,存放字符序列,如果字符序列满了,会重新改变缓存原创 2021-08-25 11:23:58 · 88 阅读 · 0 评论 -
基本数据类型对应的8个包装类
Java中为8中数据类型准备了8中对应的包装类型,是属于引用类型,父类是Object。以Integer为例public class IntegerTest01 { public static void main(String[] args) { Integer integer = 12; sum(12); } public static void sum(Object obj) { System.out.println(obj);原创 2021-08-26 17:35:15 · 225 阅读 · 0 评论 -
枚举数据类型
枚举编译之后也是生成class文件。枚举也是一种引用数据类型。枚举语法: enum 枚举类型名{ 枚举值1,枚举值2}结果只有两种情况的,建议使用布尔类型。结果超过两种并且还是可以一枚一枚例举出来的,建议使用枚举类型。public class EnumTest01 { public static void main(String[] args) { Result r = divide(10,2); System.out.println(r == R原创 2021-08-28 13:32:57 · 423 阅读 · 0 评论 -
Java异常
1 异常的基本概念什么是异常,在程序运行过程中出现的错误,称为异常。int a = 10;int b = 0;int c = a / b;//error:ArithmeticExceptionSystem.out.println(c);Java给我们提供了这样一个体系结构,当出现问题的时候,它会告诉我们,并且把错误的详细信息也告诉我们了,这就是异常的体系结构,这样我们的程序更健壮,我们可以把这个信息,再进行处理以下告诉用户。public class ExceptionTest02 {原创 2021-08-29 16:54:05 · 126 阅读 · 0 评论 -
Collection接口概述
1、Collection中能存放什么元素? 没有使用”泛型之前“,Collection中可以存储Object的所有子类型。 使用了泛型之后,Collection中只能存储某个具体的类型。2、Collection中的常用方法 boolean add(Object e);向集合中添加元素 int size();获取集合中元素的个数 void clear();清空集合 boolean contains(Object o);判断集合中是否包含元素… boolean remove(Ob原创 2021-08-30 15:17:48 · 101 阅读 · 0 评论 -
List接口
List 接口下面主要有两个实现ArrayList 和LinkedList,他们都是有顺序的,也就是放进去是什么顺序,取出来还是什么顺序,也就是基于线性存储,可以看作是一个可变数组ArrayList:查询数据比较快,添加和删除数据比较慢(基于可变数组)LinkedList:查询数据比较慢,添加和删除数据比较快(基于链表数据结构)Vector:Vector 已经不建议使用,Vector 中的方法都是同步的,效率慢,已经被 ArrayList取代Stack 是继承Vector 实现了一个栈,栈结构是后进原创 2021-08-31 15:49:53 · 73 阅读 · 0 评论 -
Set接口
1 Set接口1.1 HashSet哈希表是一种数据结构,哈希表能够提供快速存取操作。哈希表是基于数组的,所以也存在缺点,数组一旦创建将不能扩展。HashSet 中的数据是无序的不可重复的。HashSet 按照哈希算法存取数据的,具有非常好性能, 它的工作原理是这样的,当向 HashSet 中插入数据的时候,他会调用对象的 hashCode 得到该对象的哈希码,然后根据哈希码计算出该对象插入到集合中的位置.1.1.1 HashSet集合操作import java.util.HashSet;imp原创 2021-09-01 21:31:44 · 52 阅读 · 0 评论 -
Java泛型机制
JDK5.0之后推出新特性:泛型。泛型这种语法机制,只在程序编译阶段起作用,只是给编译器参考的。(运行阶段泛型没用)使用泛型的好处? 第一:集合中存储的元素类型统一了。 第二:从集合中取出元素类型是泛型指定的类型,不需要大量的”向下转型“。泛型的缺点:导致集合中存储的元素缺乏多样性。import java.util.ArrayList;import java.util.Iterator;import java.util.List;/** *未使用泛型 * 从集合中取出元素需要进行原创 2021-09-03 16:15:52 · 66 阅读 · 0 评论 -
自定义类型怎么实现Comparable接口
自定义类型怎么实现Comparable接口//年龄降序import java.util.TreeSet;public class ComTest01 { public static void main(String[] args) { TreeSet<Person> tr = new TreeSet<>(); tr.add(new Person(12)); tr.add(new Person(23));原创 2021-09-04 15:17:18 · 346 阅读 · 0 评论 -
Map接口概述
1 Map接口Map和Collection没有继承关系Map集合以key和value的方式存储数据:键值对 key和value都是引用数据类型。 key和value都是存储对象的内存地址。 key起主导作用,value是key的附属品。Map接口中的常用方法:V put(K key,V value);向Map集合中添加键值对V get(Object key);通过Key获取valuevoid clear();清空Map集合boolean containsKey(Object ke原创 2021-09-05 21:16:45 · 225 阅读 · 0 评论 -
IO流概述
什么是IO流? I:Input O:Output通过IO可以完成硬盘文件的读和写。IO流的分类?有多种分类方式: 一种是按照流的方向分类: 往内存中去,叫做输入(Input)。或者叫做读(Read)。 从内存里出来,叫做输出(Output)。或者叫做写(Write)。 另一种是按照读取数据方式不同进行分类: 有的流是按照字节的方式读取数据,一次读取1个字节byte,等同于一次读取8个二进制。这种流是万能的,什么类型的文件都可以读取,包括:文本文件,图片,声音文件,视频原创 2021-09-08 20:03:02 · 113 阅读 · 0 评论 -
多线程概述
1、线程概述什么是进程?什么是线程? 进程是一个是一个应用程序(1个进程是一个软件)。 线程是一个进程中的执行场景\执行单元。 一个进程可以启动多个线程。在Java语言中,线程A和线程B,堆内存和方法区共享。但是栈独立,一个线程一个栈。假设启动10个线程,会有10个栈空间,每个栈和每个栈之间,互不干扰,各自执行各自的,这就是多线程并发。Java中之所以有多线程机制,是为了提高程序的处理效率。2、实现线程Java语言中,实现线程有三种方式:2.1 继承Thread 第一种:编写一原创 2021-09-10 14:12:11 · 121 阅读 · 0 评论 -
反射机制概述
1、反射机制概述1.1、反射机制有什么用? 通过Java语言中的反射机制可以操作字节码文件(class文件)。1.2、反射机制相关的类在哪个包下? 反射机制在java.lang.reflect.*包下。1.3、反射机制相关的重要的类有哪些? java.lang.class:代表整个字节码,代表一个类型。 java.lang.reflect.Method:代表字节码中的方法字节码。 java.lang.reflect.Constructor:代表字节码中的构造方法字节码。 jav原创 2021-09-13 21:26:36 · 163 阅读 · 0 评论 -
Java注解
package com.wcs.annotation;/** * 注解,或者叫做注释类型:Annotation * 注解Annotation是一种引用数据类型,编译之后也是生成class文件 * 自定义注解 * [修饰符列表] @interface 注解名{} */public class AnnotationTest01 { @MyAnnotation private int no; @MyAnnotation public AnnotationTest0原创 2021-09-15 17:28:59 · 136 阅读 · 0 评论 -
Lambada表达式
package com.wcs.demo1;/** * 不使用Lambda表达式 */public class MyRunable { public static void main(String[] args) { //创建Runnable接口的实现类对象 MyRunableImpl run = new MyRunableImpl(); //创建Thread类对象,构造方法中传递Runnable接口的实现类 Thread原创 2021-09-16 14:34:57 · 277 阅读 · 0 评论 -
Stream流
package com.wcs.demo2; import java.util.ArrayList;import java.util.stream.Stream;/*** Stream流中的常用方法 */public class StreamTest03 { public static void main(String[] args) { //forEach方法,用来遍历流中的数据 //是一个终结方法,遍历之后就不能继续调用Stream流中的其他方法原创 2021-09-17 19:41:23 · 123 阅读 · 0 评论