Java基础
文章平均质量分 62
程序员正正
{ 爱学习、知上进、善沟通、懂感恩 }热爱学习,热爱编程,热爱生活,希望通过自己的努力日渐精进,各位小伙伴可以私信我互相交流~~希望可以和大家一起进步!!!
展开
-
单例设计模式(两种)
单例设计模式(两种)饿汉式可能造成创建了对象但是没有使用(弊端)没有去使用就创建实例随着类的加载而创建package com.xz.single_;public class SingleTon01 { public static void main(String[] args) { GirlFriend instance1 = GirlFriend.getInstance(); System.out.println(instance1);原创 2021-09-25 18:13:12 · 104 阅读 · 0 评论 -
Java抽象类(abstract)
Abstract学习Abstract入门package com.xz.abstract_;public class Abstract01 { public static void main(String[] args) { }}abstract class Animal { private String name; public Animal(String name) { this.name = name; } //思考:这原创 2021-09-26 22:41:10 · 335 阅读 · 0 评论 -
Java接口
接口细节1.接口不可以被实例化(抽象)2.接口中所有方法都是public方法,接口中抽象方法,可以不用abstract修饰3.一个普通类实现接口,就必须将该方法将该接口的所有方法都实现4.抽象类去实现接口时,可以不实现接口的抽象方法5.一个类同时可以实现多个接口6.接口中的属性,只能是final的,而且是public static final 修饰符7.接口不能继承其他类,但是可以继承多个其它接口8.接口的修饰符只能是public 和 默认 ,这点和类的修饰符是一样的Extends VS原创 2021-09-27 22:32:00 · 97 阅读 · 0 评论 -
Java内部类
内部类基本介绍内部类一共有四种匿名内部类内部类案例package com.xz.innerclass;public class InnerClass01 { public static void main(String[] args) { }}class Outer { int n1 = 10;//属性 public Outer(int n1) {//构造器 this.n1 = n1; } public void原创 2021-09-27 22:37:34 · 89 阅读 · 0 评论 -
Java 枚举
枚举==>可以用来解决有限的特定的对象枚举对应英文(enumeration,简写enum)枚举是一组常量的集合。可以这里理解:枚举属于一种特殊的类, 里面只包含一组有限的特定的对象。实现方式自定义类实现枚举使用enum关键字实现枚举自定义类实现故举-小结小结:进行自定义类实现枚举,有如下特点:构造器私有化本类内部创建一组对象[四个 春夏秋冬]对外暴露对象(通过为对象添加public final static修饰符)可以提供get方法,但是不要提供setenum关原创 2021-09-28 22:11:44 · 193 阅读 · 0 评论 -
Java异常
异常学习异常介绍●基本概念Java语言中,将程序执行中发生的不正常情况称为"异常”。(开发过程中的语法错误和逻辑错误不是异常)执行过程中所发生的异常事件可分为两类Error(错误): Java虚拟机无法解决的严重问题。如: JVM系统内部错误、资源耗尽等严重情况。比如: StackOverflowError[栈溢出]和OOM(out ofmemory), Error 是严重错误,程序会崩溃。Exception:其它因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理原创 2021-09-29 22:26:09 · 231 阅读 · 0 评论 -
Java包装类
包装类包装类的分类针对八种基本定义相应的引用类型一包装类有了类的特点,就可以调用类中的方法。//boolean --> Boolean//char --> Character//byte --> Byte//int --> Integer//long --> Long//float --> Float//double --> Double//short --> Short关系图包装类和原创 2021-09-30 21:26:24 · 102 阅读 · 0 评论 -
String、StringBuffer 和StringBuilder
String类String类的理解和创建对象String对象用于保存字符串,也就是一组字符序列字符串常量对象是用双引号括起的字符序列。例如: “你好”、“12.97”、"boy"等字符串的字符使用Unicode字符编码,一个字符(不区分字母还是汉字)占两个字节 charString类较常用构造方法(其它看手册):String s1 = new String();String s2 = new String(String original);String s3 = new String(c原创 2021-09-30 21:30:30 · 199 阅读 · 2 评论 -
Math常用类
Math常用类package www.xz.math_;/** * @author 许正 * @version 1.0 */public class MathMethods { public static void main(String[] args) { //看看Math常用的方法(静态方法) //1.abs绝对值 int abs = Math.abs(-9); System.out.println(abs);//9原创 2021-09-30 21:31:08 · 98 阅读 · 0 评论 -
Arrays常用类
Arrays常用类Arrays里面包含了一系列静态方法,用于管理或操作数组(比如排序和搜索)。toString返回数组的字符串形式Arrays.toString(arr)sort排序(自然排序和定制排序)Integer arr[] = {1,-1, 7, 0, 89};binarySearch通过二分搜索法进行查找,要求必须排好序int index = Arrays.binarySearch(arr 3);copyOf数组元素的复制Integer[]原创 2021-10-12 20:17:06 · 161 阅读 · 0 评论 -
System类
System类System类常见方法和案例exit退出当前程序arraycopy :复制数组元素,!比较适合底层调用,一般使用Arrays.copyOf完成复制数组.int[] src={1,2,3};int[] dest = new int[3];System.arraycopy(src, 0, dest, 0, 3);currentTimeMillens:返回当前时间距离1970-1-1的毫秒数gc:运行垃圾回收机制System.gc();方法演示package w原创 2021-10-12 20:18:27 · 82 阅读 · 0 评论 -
大数处理方案
BigInteger和BigDecimal类●BigInteger和BigDecimal介绍应用场景:BigInteger适合保存比较大的整型BigDecimal适合保存精度更高的浮点型(小数)案例演示package www.xz.bignum;import java.math.BigInteger;/** * @author 许正 * @version 1.0 */public class BigInteger_ { public static void main(原创 2021-10-12 20:20:03 · 79 阅读 · 0 评论 -
java日期类
日期类第一代日期类Date:精确到毫秒,代表特定的瞬间SimpleDateFormat:格式和解析日期的类SimpleDateFormat格式化和解析日期的具体类。它允许进行格式化(日期->文本)、解析(文本->日期)和规范化.package www.xz.date_;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/** * @aut原创 2021-10-12 20:26:15 · 106 阅读 · 0 评论 -
java集合概述
集合的理解和好处前面我们保存多个数据使用的是数组,那么数组有不足的地方,我们分析一下。数组长度开始时必须指定,而且一旦指定,不能更改保存的必须为同一类型的元素使用数组进行增加/删除元素的示意代码-比较麻烦写出Person数组扩容示意代码Person[] per = new Person[1]; //大小是1per[0]=new Person();增加新的Person对象?Person[] per2 = new Person[per.length+ 1];原创 2021-10-12 20:28:47 · 92 阅读 · 0 评论 -
Collection接口和常用方法
Collection接口和常用方法package www.xz.collection_;import java.util.ArrayList;import java.util.Collection;import java.util.HashMap;import java.util.Map;/** * @author 许正 * @version 1.0 */public class Collection_ { @SuppressWarnings({"all"}) pub原创 2021-10-13 21:02:35 · 211 阅读 · 0 评论 -
List接口和常用方法
List接口基本介绍List接口是Collection接口的子接口List集合类中元素有序(即添加顺序和取出顺序一致)、 且可重复List集合中的每个元素都有其对应的顺序索引,即支持索引。List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素。JDK API中List接口的实现类有:常用的有: ArrayList、 LinkedList和Vector.package www.xz.list_;import java.util.A原创 2021-10-13 21:19:10 · 550 阅读 · 0 评论 -
Set接口和常用方法
Set接口和常用方法Set接口基本介绍无序(添加和取出的顺序不一致),没有索引不允许重复元素,所以最多包含一个nullJDK API中Set接口的实现类有:Set接口的常用方法和List接口一样,Set接口也是Collection的子接口,因此,常用方法和Collection接口一样.Set接口的遍历方式同Collection的遍历方式一样,因为Set接口是Collection接口的子接口。1.可以使用迭代器2.增强for3.***不能使用***索引的方式来获取.p原创 2021-10-15 21:50:03 · 855 阅读 · 0 评论 -
Map接口和常用方法
Map接口和常用方法Map接口实现类的特点[很实用]注意:这里讲的是JDK8的Map接口特点Map 与 Collection 并列存在。用于保存具有映射关系的数据: Key-ValueMap 中的 key 和 value 可以是任何引用类型的数据,会封装到 HashMap$Node 对象中Map 中的 key 不允许重复,原因和 HashSet 一样,前面博文中分析过源码.Map 中的 value 可以重复Map 的 key 可以为 null , value 也可以为 null ,注意原创 2021-10-16 14:07:45 · 11717 阅读 · 0 评论 -
Collections工具类
Collections工具类Collections工具类介绍Collections是个操作 Set、List和Map等集合的工具类Collections中提供了一系列静态的方法对集合元素进行排序、查询和修改等操作排序操作:(均为static方法)reverse(List): 反转List中元素的顺序shuffle(List):对List集合元素进行随机排序sort(List):根据元素的自然顺序对指定List集合元素按升序排序sort(List, Comparat原创 2021-10-18 11:15:38 · 1252 阅读 · 0 评论 -
HashSet和TreeSet分别如何实现去重
试分析HashSet和TreeSet分别如何实现去重的HashSet的去重机制: hashCode() + equals() ,底层先通过存入对象,进行运算得到一个hash值,通过hash值得到对应的索引,如果发现table索引所在的位置,没有数据,就直接存放,如果有数据,就进行equals比较[遍历比较],如果比较后,不相同,就加入,否则就不加入.TreeSet的去重机制:如果你传入了一个Comparator匿名对象,就使用实现的compare去重,如果方法返回0,就认为是相同的元素/数据,就原创 2021-10-18 11:16:24 · 315 阅读 · 0 评论 -
Vector和ArrayList的比较
原创 2021-10-18 11:17:07 · 90 阅读 · 0 评论 -
Java泛型
泛型的理解和好处使用传统方法的问题分析不能对加入到集合ArrayList中的数据类型进行约束(不安全)遍历的时候,需要进行类型转换,如果集合中的数据量较大,对效率有影响传统方法案例演示:package com.xz.generic;import java.util.ArrayList;/** * @author 许正 * @version 1.0 */public class Generic01 { public static void main(String[]原创 2021-10-21 21:45:45 · 262 阅读 · 0 评论 -
JUnit
为什么需要JUnit一个类有很多功能代码需要测试, 为了测试,就需要写入到main方法中如果有多个功能代码测试,就需要来回注销,切换很麻烦如果可以直接运行一个方法,就方便很多,并且可以给出相关信息,就好了-> JUnit示范package com.xz.junit_;import org.junit.jupiter.api.Test;/** * @author 许正 * @version 1.0 */public class JUnit { public stat原创 2021-10-25 22:18:49 · 100 阅读 · 0 评论 -
Java绘图技术
坐标体系介绍下图说明了Java坐标系。坐标原点位于左上角,以像素为单位。在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。坐标体系-像素绘图还必须要搞清个非常重要的概念像素一个像素等于多少厘米?计算机在屏幕上显示的内容都是由屏幕上的每一个像素组成的。例如,计算机显示器的分辨率是800x 600,表示计算机屏幕上的每一行由800个 点组成,共有600行,整个计算机屏幕共有480 000个像素。像素原创 2021-10-25 22:22:23 · 2238 阅读 · 0 评论 -
JAVA多线程(基础)
线程相关概念程序(program)是为完成特定任务、用某种语言编写的-组指令的集合。简单的说:就是我们写的代码进程进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存空间。当我们使用迅雷,又启动了一个进程,操作系统将为迅雷分配新的内存空间。进程是程序的一次执行过程,或是正在运行的一个程序。是动态过程:有它自身的产生、存在和消亡的过程什么是线程线程由进程创建的,是进程的一个实体一个进程可以拥有多个线程,如下图其他相关概念单线程:同一个原创 2021-10-27 20:38:46 · 286 阅读 · 0 评论 -
JAVA IO流
目录文件的基本使用IO流原理及流的分类FilelnputStream和FileOutputStreamFileReader和FileWriter节点流和处理流BufferedInputStream和BufferedOutputStreamBufferedReader和BufferedWriter对象流-ObjectInputStream和ObjectOutputStream转换流InputStreamReader和OutputStreamWriterProperties类文件什么原创 2021-11-03 13:04:34 · 198 阅读 · 0 评论 -
JAVA网络编程
网络编程网络的相关概念网络通信概念:两台设备之间通过网络实现数据传输网络通信:将数据通过网络从一台设备传输到另一台设备java.net包下提供了一系列的类或接口,供程序员使用,完成网络通信[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JhqNgDRG-1636974329758)(C:\Users\许正\AppData\Roaming\Typora\typora-user-images\image-20211104155340279.png)]网络概念:原创 2021-11-15 19:11:51 · 477 阅读 · 0 评论 -
Java反射
反射反射机制Java Reflection反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息(比如成员变量,构造器,成员方法等等),并能操作对象的属性及方法。反射在设计模式和框架底层都会用到加载完类之后,在堆中就产生了一个Class类型的对象(一个类只有一个Class对象) ,这个对象包含了类的完整结构信息。通过这个对象得到类的结构。这个对象就像面镜子,透过这个镜子看到类的结构,所以,形象的称之为: 反射Java反射机制原理示意图!!!![[外链图片转存失败,源站原创 2022-02-28 20:19:45 · 796 阅读 · 0 评论 -
JDBC和连接池
JDBC概述基本介绍JDBC为访问不同的数据库提供了统一的接口,为使用者屏蔽了细节问题。Java程序员使用JDBC,可以连接任何提供了JDBC驱动程序的数据库系统,从而完成对数据库的各种操作。JDBC的基本原理模拟 JDBCJDBC原理示意图JDBC带来的好处JDBC带来的好处说明:JDBC是Java提供一套用于数据库操作的接口API, Java程序员只需要面向这套接口编程即可。不同的数据库厂商,要针对这套接口,提供不同实现。JDBC APIJDBC API是一系列的接口,原创 2022-03-08 07:39:14 · 486 阅读 · 0 评论