JavaSE学习记录
~
菜得只能自己玩泥巴
这个作者很懒,什么都没留下…
展开
-
序列化和反序列话
实现接口指定ID无参构造学习原创 2021-04-15 16:32:47 · 86 阅读 · 0 评论 -
UUID
是什么UUID是Universally Unique Identifier的缩写,它是在一定的范围内(从特定的名字空间到全球)唯一的机器生成的标识符。uuid 可以理解成一定范围内唯一字符串java生成import java.util.UUID; String uuid = UUID.randomUUID().toString();其他更详细的解释看别人的...原创 2021-04-07 16:32:07 · 863 阅读 · 0 评论 -
常用的包装类及其方法
常用的包装类及其方法常用的Number方法开发过程中常需要使用对象而不是内置数据类型,java为每个内置数据类型提供了包装类:Integer、Long、Byte、Double、Float、Short,都是Number的子类常用的Number方法将Number的六种子类对象的对象值互换byteValue():获取对象的byte值doubleValue():floatValue()intValue()longValue()shortValue()...原创 2021-03-16 23:24:31 · 107 阅读 · 0 评论 -
java随机数
随机数随机数三种方法:调用Math类的。random()方法,返回[0,1)的随机数Random类,根据随机数种子创建伪随机数,默认才用系统的时间戳作为种子Random r=new Random();r.nextInt();//[0,1)r.nextInt(10);//[0,10)SecureRandom类,真随机数,无法指定种子……...原创 2021-01-19 16:04:49 · 63 阅读 · 0 评论 -
Java多态
Java多态Java多态继承重写父类引用指向子类对象:此时父类引用只能调用父类有的方法,否则编译报错,虽然执行的实际方法仍然是子类的。原创 2021-01-19 16:02:14 · 72 阅读 · 0 评论 -
java枚举
枚举enumenum类型的每个常量再JVM中只有一个唯一实例,因此是个可以用双=来比较的例外。enum Weekday{ MON,TUE,WED;}方法:String name():返回常量名int ordinal():返回常量顺序,从0开始使用ordinal()并不健壮,如果枚举中顺序改变,ordinal()值也随之改变,因此可以自定义一个值,再创建实例时就可以赋上不再改变enum Weekday{ MON(2),TUE(4),WED(6); public final int原创 2021-01-19 16:00:25 · 66 阅读 · 0 评论 -
java 抽象类vs接口
抽象类vs接口抽象类vs接口接口中的方法全是public接口中全是隐式抽象的方法,不用声明abstract抽象类中的方法可以有方法体,接口中的全是抽象方法接口中的成员变量只能是常量,(public static final) int a;修饰符都可省一个类只能继承一个抽象类,却能实现多个几口...原创 2021-01-19 15:59:48 · 62 阅读 · 0 评论 -
关于带参构造函数
关于带参构造函数关于带参构造函数若自己定义了一个带参的构造函数,那么默认的无参构造就会失效,除非自己再定义一个无参构造子类继承父类是不继承构造函数的,只是显示或者隐式的调用,若父类构造器带有参数,子类必须再构造器中显示的通过super调用父类构造器,若构造器没有参数,则系统自动调用无参构造器public class A{ int x; public A(){ this.x=1; } public A(int x){ this.x=x; }}public class B .原创 2021-01-19 15:50:56 · 242 阅读 · 0 评论 -
java可变参数
可变参数可变参数不确定方法有多少个参数,可以要求接收任意个参数,但是可变参数类型必须是相同的一个方法中只能指定一个可变参数,必须是方法的最后一个参数,任何普通参数必须在它之前声明执行类型或加省略号…(三个点)public void sayHi(String...names)在方法中把names当数组用public void sayHi(int a,String...names){ for(int i=0;i<names.lenth;i++){ System.out.println(.原创 2021-01-19 15:45:14 · 65 阅读 · 1 评论 -
java的时间日期
Java时间日期Date类Calendar类常用属性常用方法实现类GregorianCalendarJava时间日期Date类两个构造函数:Date():使用当前时间来初始化对象Date(long millisec):参数是从1970年1月1日起的毫秒数Date日期格式化:使用SimpleDateFormat格式化 Date date=new Date(); SimpleDateFormat ft=new SimpleDateFormat("yyyy-MM-dd hh.原创 2021-01-19 15:27:54 · 112 阅读 · 0 评论 -
java 字符串与数据之间的转换
字符串转整型String转IntegerString转int字符串转整型调用Integer的方法String转Integer使用构造方法:Integer i=new Integer(8);String转int使用类方法:static int parseInt(String s)将字符串参数解析为带符号的十进制整数。 int a=Integer.parseInt(8);static int parseInt(String s, int radix)将字符串参数解析为第二个参数指定的基.原创 2021-01-19 14:46:38 · 143 阅读 · 0 评论 -
String、StringBuilder与StringBuffer
String、StringBuilder与StringBufferString类常用构造方法常用方法StringBuilder和StringBuffer类StringBuilder常用方法String类在Java中,字符串属于对象,底层是一个final byte[],因此String对象中内容不可更改。常用构造方法String(byte[] bytes, Charset charset)String(byte[] bytes, int offset, int length, String cha原创 2021-01-16 22:59:31 · 61 阅读 · 0 评论 -
Number类及其常用方法
Number类及其常用方法Number类常用的Number方法常用的Integer方法常用的Character类方法Number类开发过程中常需要使用对象而不是内置数据类型,java为每个内置数据类型提供了包装类:Integer、Long、Byte、Double、Float、Short,都是Number的子类装箱:将内置数据类型转换成对象拆箱:将对象转成内置数据类型JDK1.5之后支持自动装箱、拆箱Integer a=10; int b=a;ps:boolean c=a==b;值为fals原创 2021-01-16 22:36:10 · 677 阅读 · 0 评论 -
java 装箱拆箱
java装箱和拆箱开发过程中常需要使用对象而不是内置数据类型,java为每个内置数据类型提供了包装类:Integer、Long、Byte、Double、Float、Short,都是Number的子类装箱:将内置数据类型转换成对象拆箱:将对象转成内置数据类型JDK1.5之后支持自动装箱、拆箱例如:Integer a=10; int b=a;ps:boolean c=a==b;值为false,因为a是对象在堆中的地址,而b是10在方法常量区中的内存地址。...原创 2021-01-16 17:18:02 · 77 阅读 · 0 评论 -
java中的equals与==
java中的equals与====运算符equals方法==运算符比较变量用==,判断两个变量是否相等但是当比较对象的时候,使用==的话比较的就是两个对象在内存中的地址(换句话说就是是否为同一个对象),那么比如对象a,b是两个引用,代表是对象在堆当中的 地址 ,那么a==b比较的就是a地址和b地址是否相等,也就是两个对象在内存中的地址相等(换句话说就是是否为同一个对象)equals方法equals()是在Object类中就定义好的方法,用来判断两个类的内容是否相等public boolean e原创 2021-01-16 16:58:57 · 71 阅读 · 0 评论 -
java的toString方法
java的toString方法java的toString方法是在Object类中定义的定义的是返回类名+Hash值的十六进制public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }很多定义好的类都已经重写了toString自己定义的类可以重写toString方法java中输出对象默认调用toString...原创 2021-01-16 16:27:54 · 169 阅读 · 1 评论 -
java的Object类及常用方法
java的Object类及常用方法Object类是java中所有类的根父类,java中类都直接或间接的继承Object类。方法名功能clone()对象克隆,很少使用equals()判断两个类的内容是否相等finalize()对象被垃圾回收器回收时,会执行这个方法。执行时间不确定,因为垃圾回收器回收这个类的时间不确定,一般不使用getClass()返回对象的运行时类(可简单理解为对象的类的字节码文件)hashCode()返回对象的hash值not原创 2021-01-16 16:20:20 · 83 阅读 · 0 评论 -
数组和字符串的长度
数组和字符串的长度数组和字符串的长度数组长度字符串长度数组和字符串的长度数组长度数组的长度调用的是数组的length属性int[] arr={1,3};int length=arr.length;字符串长度字符串的长度调用的是数组的length()方法String str="hello"; int length=str.length();...原创 2021-01-05 23:38:01 · 333 阅读 · 0 评论 -
java修饰符
java修饰符java常用修饰符访问控制修饰符非访问修饰符java常用修饰符访问控制修饰符public:公有访问权限,可以修饰类,接口,变量,方法;public所修饰的内容,在所有类都可以访问。protected:受保护的访问权限,修饰变量,方法,不可修饰外部类;使用该修饰符修饰的类型可以在当前包,类,同一包类的子类中访问;其他包不可以访问;defalt: 默认访问权限,接口,变量,方法使用该修饰符修饰的类型可以在当前包中访问;其他包不可以访问private: 私有访问权限,可以修饰变量,方法原创 2021-01-05 23:22:44 · 56 阅读 · 0 评论 -
java中循环的几种写法
java中循环的几种写法whiledo……whileforfor eachwhile语法while(条件表达式){执行语句;}int a=1;while(a<100){ a++;}do……while语法:do{执行语句}while(条件表达式);注意:do……while比while多了一个分号哦do while与while的区别在于do while无论条件是否成立都会先执行一次int a=1;do{ a++;}while(a<100);for语法:原创 2021-01-05 22:41:03 · 637 阅读 · 0 评论 -
java instanceof具体用法
java instanceof具体用法关键字作用用法关键字首先:instanceof是Java的一个保留关键字 关键字!关键字!关键字!作用它的具体作用是测试左边的对象是否是右边类或者该类的子类(或者是接口与实现的关系) 创建的实例对象。用法 注意!!!右边的声明类型和左边的类其中的任意一个跟测试类必须得是继承树的同一分支或存在继承(实现)关系假设有类关系: Object o = new Student(); // 主要看这个对象是什么类型与实例化的类名 // ins原创 2021-01-02 00:02:24 · 175 阅读 · 0 评论 -
Java字符串拼接的几种写法和效率
Java字符串拼接的几种写法和效率字符串拼接第一种方式 使用+来看一下一下两种+拼接字符串的性能第二种方式 使用String.concat()第三种方式 使用StringBuilder.append三种方式性能比较字符串拼接第一种方式 使用+String s1="abc";String s2="def";String s3=s1+s2;注意: 使用 + 拼接字符串,底层都会创建一个 StringBuilder 实例调用 append() 方法来拼接。来看一下一下两种+拼接字符串的性能有三个原创 2021-01-01 23:32:41 · 480 阅读 · 0 评论 -
逻辑运算符的短路性
逻辑运算符的短路性逻辑运算符:&& ||短路性对于表达式组成的逻辑运算,如果通过第一个表达式就能判断整个逻辑运算的值,那么后一个表达式就不会被执行。&&与运算int a=2,b=3;if(++a==2&&++b==3){ System.out.prinln(a);//3 System.out.prinln(b);//3}&&运算一个为假整个为假,通过第一个++a==2,就可以判断逻辑假。因此执行第一个++a之后,后面的++原创 2021-01-01 22:31:07 · 408 阅读 · 0 评论 -
java 静态变量,成员变量,局部变量的默认值
java 静态变量,成员变量,局部变量的默认值静态变量和成员变量的默认值判断char是否被赋值局部变量的默认值静态变量和成员变量的默认值静态变量和成员变量的默认值时一样的public class Variable{ public static char a; public char b; …………}静态成员、成员变量char默认值: 静态成员、成员变量int默认值:0静态成员、成员变量long默认值:0静态成员、成员变量float默认值:0.0静态成员、成员变量double默认值:原创 2021-01-01 22:22:07 · 1607 阅读 · 0 评论 -
Java类型转换
java自动类型转换类型转换自动类型转换强制类型转换类型转换自动类型转换强制类型转换自动类型转换指的是容量小的数据类型可以自动转换为容量大的数据类型例:int a=2;double b;b=a;//自动类型转换 int->double强制类型转换当两种类型彼此不兼容,或者目标类型取值范围小于源类型时,自动类型转换无法进行,这时就需要进行强制类型转换。例:double a=2.0;int b;b=(int)a;ps: 浮点数向整数转换,直接舍去小数位而不是四原创 2021-01-01 21:31:55 · 99 阅读 · 0 评论 -
java数组的内存分析
内存分析数组本身是一个对象,数组中存放的是对象的引用。new出来的对象都是放在堆中的,数组的引用array是在栈里原创 2021-01-01 17:47:16 · 128 阅读 · 0 评论 -
Java数组声明创建赋值长度
Java数组数组的声明与创建数组声明方式创建数组使用new来创建数组变量数组的长度数组的初始化静态初始化动态初始化默认的初始化内存分析数组的声明与创建数组声明方式dataType[] arrayRefaVar;//首选dataType arrayRefaVar[];创建数组使用new来创建数组变量dataType[] arrayRefaVar = new dataType[arraySize];数组的长度使用数组的length属性,每个数组都有一个length属性。如:获取数组名为原创 2021-01-01 17:43:54 · 1542 阅读 · 0 评论 -
重写和重载区别
原创 2020-10-12 15:33:22 · 77 阅读 · 0 评论 -
关于java父子类同名属性
父子类的同名属性并不会直接覆盖掉,而是存在不同的域当中,静态引用是谁的属性那最后访问的就是谁的属性,要设置或获取访问父类的属性可以用super康康别人的原创 2020-09-29 21:56:04 · 1081 阅读 · 0 评论 -
JDBC
JDBC编程六步:1、注册驱动2、获取连接3、获取数据库操作对象4、执行SQL5、处理查询结果集6、释放资源防sql注入PreparedStatementJDBC事务手动开关事务:前提:从mysql官网下载数据库连接驱动(mysql-connector-java-8.0.19.jar)导入项目JDBC编程六步:将要用到的数据库信息写到配置文件中(jdbc.properties)driver=com.mysql.cj.jdbc.Driverurl=jdbc:mysql://localhost:3.原创 2020-07-05 20:21:24 · 323 阅读 · 0 评论 -
反射的简单理解
反射机制的相关类java.lang.Classjava.lang.reflect.Methodjava.lang.reflect.Constructorjava.lang.reflect.Field反射机制的相关类java.lang.Class获取Class对象,可以使用Class.forName(……)或者对象的getClass()方法Class.forName(……)会导致类加载,类加载那么类当中的静态代码块必然执行 //Class.forName()是一个静态方法,参数是一.原创 2020-07-04 22:33:55 · 109 阅读 · 0 评论 -
JavaSE-线程同步的实现
将需要同步的代码块使用放在synchronized(this){}当中,synchronized()当中的参数需要是被共享的对象,只要是被共享的对象当中的内容就行,不局限于this.例如:同时对账户余额的一个操作代码实现:定义目标账户类package synchronizedTest;public class SynchronizedAccount { //账号 private String actno; //余额 private double balance;原创 2020-07-04 22:02:04 · 90 阅读 · 0 评论 -
JavaSE-简单的JVM理解
堆:一般new出来的对象都存在堆中方法区:又叫元空间。一般存放常量+静态变量+类信息(类加载信息)栈(线程):每个线程都有自己的一个栈内存空间一个线程一个栈,共享堆和方法区栈(线程)简介:public static void main(String[] args){ 方法B()}一个线程一个线程栈,主线程开始后,先将main()方法压栈,然后执行到B再将B方法压栈方法栈帧:存放方法中定义的局部变量和其他使用的变量引用。因此,会发生同步问题的只有实例变量和静态变量,局部变量不在线程间.原创 2020-07-03 23:13:50 · 147 阅读 · 0 评论 -
JavaSE-线程
多线程多线程的三种实现方式继承Thread实现Runnable接口匿名内部类Java线程的优先级yield()、sleep()与join()yield()join()方法sleep()方法结束线程带返回值的线程实现方式守护线程多线程使用多线程机制后,main()方法结束,只是主线程结束,主栈空了但其他栈(线程)还在。多线程的三种实现方式继承Thread线程类继承Thread(java.lang),重写run()方法,在主线程中调用start()方法开启新线程public class Threa.原创 2020-07-03 21:17:39 · 179 阅读 · 0 评论 -
JavaSE-File类
File类文件和目录路径名的抽象表示形式如:C:\Drivers、D:\SayHi\hello.txt File file=new File("D:\\CHENGXUYUAN\\IO\\filetest"); //判断是否存在不存在则新建一个文件 if(!file.exists()){ file.createNewFile(); } //以目录的形式创建 if(!file.exists原创 2020-07-02 22:22:50 · 107 阅读 · 0 评论 -
JavaSE-IO
字节流与字符流常见的16个流:文件专属:缓冲流转换(字节流--->字符流)数据流标准输入输出流对象专属流字节流与字符流InputStream:字节输入流OutputStream:字节输出流Reader:字符输入流Writer:字符输出流常见的16个流:文件专属:FileInputStreamFileOutputStreamFileReaderFileWriter缓冲流BufferedReaderBufferedWriterBufferedInputStreamB.原创 2020-07-01 22:20:03 · 142 阅读 · 0 评论 -
JavaSE-集合
集合Collection关于contains()和remove():迭代器ListArrayListLinkedList泛型Map集合集合不能直接存储基本数据类型,另外集合也不能直接村粗Java对象,存储的都是Java对象的内存地址(引用)。Java的集合分为两大类:以单个方式存储的元素,这一类集合中的超级父接口:Collection以键值对方式存储元素,这一类集合中超级父接口:MapCollection常用类继承结构概览:Collection中常用方法:boolean a.原创 2020-06-30 20:55:59 · 306 阅读 · 0 评论 -
字符串再JVM中存储原理
Java多态抽象类vs接口枚举enum随机数Java多态继承重写父类引用指向子类对象:此时父类引用只能调用父类有的方法,否则编译报错,虽然执行的实际方法仍然是子类的。抽象类vs接口接口中的方法全是public接口中全是隐式抽象的方法,不用声明abstract抽象类中的方法可以有方法体,接口中的全是抽象方法接口中的成员变量只能是常量,(public static final) int a;修饰符都可省一个类只能继承一个抽象类,却能实现多个几口枚举enumenum类型的每个常量.原创 2020-06-29 16:03:34 · 144 阅读 · 0 评论 -
Java数组类常用方法,查找排序
Java数组Arrays数组类常用方法Java时间日期Date类Calendar类常用属性常用方法实现类GregorianCalendar可变参数关于构造函数Java数组一维数组:例:int[] a=new int[10];二维数组:例:int[][] c=new int[10][ ];c[0]=new int[2];c[1]=new int[3];Arrays数组类常用方法static void fill(int[] a, int val) :将指定的int值分配给指定的int数组的.原创 2020-06-29 15:14:20 · 214 阅读 · 0 评论