JavaSE
xue_yun_xiang
这个作者很懒,什么都没留下…
展开
-
单例模式
一、使用单例模式的原因需求:要求当类在整个运行的程序中有且只有一个类对象问题1:如何获取一个类对象的???new一个,创建对象的方式过于轻松,借助于new和构造方法就行了解决:可以借助于私有化构造方法问题2:通过new和构造方法,创建对象的话,每次创建都是不一样的解决:类外不能再获取对象了,就意味着加了private之后,在类外不能new而如果期望再类外获取对象这个地方只能使用成员方法获取对这个成员方法进行分析:类外可以使用这个方法,修饰符 public类外面没有当前的类原创 2021-03-23 20:07:57 · 71 阅读 · 0 评论 -
生产者消费者模式
Goods.java:class Goods { private String name; private int price; private boolean shouldProduct; public Goods() { } public Goods(String name, int price, boolean shouldProduct) { this.name = name; this.price = pric原创 2021-03-23 19:47:48 · 82 阅读 · 0 评论 -
反射
一、反射的原理二、获取Class类对象的三种方式第一种:static Class forName(String name)通过class类名来调用,是一个静态的方法,传入的参数是一个完整的包名 + 类名第二种:Class 类名.class通过类名来调用 获取类对应的属性第三种:Class 类对象.getClass()通过类对象来调用,获取当前的Class类对象示例通用类Person(后面示例省略):public class Person { int id;原创 2021-03-22 21:10:33 · 102 阅读 · 2 评论 -
集合Collection的初步认识
一、为什么使用集合数组在使用的时候: 1.要定义容器的大小,超了直接报异常 2.数组的操作的方法是很少的,没有封装。 3.数据也是比较单一期望有一个java的方式,可以把那些数组方法题封装到一起,供程序员使用。Collection 集合 【接口】 完成了一系列的增删改查的操作二、集合的架构Collection<E> java中所有集合的总接口--List<E> Collection下面的子接口,特征:有序的,可重复的。----Abs原创 2021-03-15 13:35:50 · 215 阅读 · 1 评论 -
权限修饰符
修饰符名称当前类同一个包其他包的子孙类其他包的类public可以可以可以可以protected可以可以可以不可以default可以可以不可以不可以private可以不可以不可以不可以...原创 2021-03-11 19:21:21 · 101 阅读 · 0 评论 -
泛型的初步认识
一、为什么要用泛型在实际的开发中,对于数据一致化的要求是比较重要的例如:ArrayList list = new ArrayList()//构建了一个容器 int[] arr = new int[10];如果对将要保存到ArrayList中的数据类型没有进行约束的话,就会导致容器里放了各种类型的数据。那么取数据时,就可能需要强制类型转换,浪费时间,执行效率低,甚至数据丢失。所以为了解决这样数据乱的情况,就要使用泛型里里面的数据约束。ArrayList< String> list =原创 2021-03-11 19:19:56 · 140 阅读 · 0 评论 -
String的常用方法
一、int length():获取字符串的长度String str = "自挂东南枝"; System.out.println(str.length());//5二、char charAt(int index):获取指定位置的字符String str = "自挂东南枝";System.out.println(str.charAt(3));//南三、indexOf(int ch):返回指定字符第一次出现的字符串内的索引。int indexOf(String str):返回指定子原创 2021-03-10 19:13:19 · 310 阅读 · 2 评论 -
异常
一、什么是异常身体的异常我:医生,我难受医生:你哪里难受我:我头疼医生:为什么头疼我:昨晚敲代码冻着了医生:还有别的症状?我:还有一点嗓子不舒服医生:给你开点药,然后回家多喝热水错误,异常都是前因和后果的代码中的异常 运行时候的报错: ArrayIndexOutOfBoundsException NullPointerException ClassNotFoundException SQLException FileNotFoundExce原创 2021-03-09 20:17:27 · 80 阅读 · 0 评论 -
重载和重写的区别
一、定义:方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是-一个类中多态性的一-种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding) 。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(0verloa原创 2021-03-09 17:37:11 · 85 阅读 · 0 评论 -
静态代码块、构造方法、构造代码块、变量、静态变量的执行顺序详解
一、语法格式 static {}类文件只要加载,静态代码块就一定加载。二、示例public class DemoTest{ //静态代码块 //对对象加上静态修饰 static DemoTest demo1 = new DemoTest(); static DemoTest demo2 = new DemoTest(); //构造代码块 { System.out.println("这是构造代码块"); } st原创 2021-03-09 17:22:04 · 1569 阅读 · 1 评论 -
IDEA的安装与最基本使用
一、双击运行.exe文件二、点击next三、选择安装路径(不要含有中文),然后点击next四、五、点击Install六、安装完成、运行IDEA七、直接跳过默认配置八、创建一个新的项目九、检查地址与安装jdk的路径是否一致,如果不一致则点击NEW,选择安装jdk的路径,然后点击Next十、点击Next十一、填写项目名称和项目保存的位置,然后点击finish十二、如果弹出这个框,则等待自动加载完毕,如果没有请忽略十三、右键点击src,选择New,选择 Packa原创 2021-02-23 19:46:47 · 177 阅读 · 2 评论 -
包装类及自动装箱与拆箱
一、包装类的使用 * 1.java提供了8种基本数据类型对应的包装类,使得基本数据类型的变量具有类的特征 * * 2.掌握的:基本数据类型、包装类、String三者之间的相互转换 * */public class WrapperTest { //String类型--->基本数据类型、包装类:调用包装类的方法:parseXxx() @Test public void test5(){ //如果写成“123a”,则会报NumberFormatException Stri转载 2021-02-15 18:04:06 · 104 阅读 · 1 评论 -
== 和 equals()的区别
一、 == 的使用: * == :运算符 * 1. 可以使用在基本数据类型变量和引用数据类型变量中 * 2. 如果比较的是基本数据类型变量:比较两个变量保存的数据是否相等。(不一定类型要相同) * 如果比较的是引用数据类型变量:比较两个对象的地址值是否相同.即两个引用是否指向同一个对象实体 * 补充: == 符号使用时,必须保证符号左右两边的变量类型一致。 * 二、equals()方法的使用: * 1. 是一个方法,而非运算符 * 2. 只能适用于引用数据类型 * 3. .转载 2021-02-15 17:58:44 · 94 阅读 · 0 评论 -
多 态 性
一、概要 * 1.理解多态性:可以理解为一个事物的多种形态。 * 2.何为多态性: * 对象的多态性:父类的引用指向子类的对象(或子类的对象赋给父类的引用) * * 3. 多态的使用:虚拟方法调用 * 有了对象的多态性以后,我们在编译期,只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重写父类的方法。 * 总结:编译,看左边;运行,看右边。 * * 4.多态性的使用前提: ① 类的继承关系 ② 方法的重写 * * 5.对象的多态性,只适用于方法,转载 2021-02-15 17:47:23 · 92 阅读 · 0 评论 -
继 承 性
一、子类对象实例化的全过程 * 1. 从结果上来看:(继承性) * 子类继承父类以后,就获取了父类中声明的属性或方法。 * 创建子类的对象,在堆空间中,就会加载所有父类中声明的属性。 * * 2. 从过程上来看: * 当我们通过子类的构造器创建子类对象时,我们一定会直接或间接的调用其父类的构造器,进而调用父类的父类的构造器,... * 直到调用了java.lang.Object类中空参的构造器为止。正因为加载过所有的父类的结构,所以才可以看到内存中有 * 父类转载 2021-02-15 17:31:09 · 84 阅读 · 0 评论 -
关于Eclipse 的 Debug 中 Step into进不去方法的问题解决
问题:Debug时,点击Step into进不去方法,点击后效果和 Step over效果一样解决:第一步:进入Debug Configurations…第二步:进入JRE第三步:点击Alternate JRE,查看是否为jre开头的文件第四步:点击修改第五步:第六步:点击下一步第七步:点击Directory,选择jdk的安装路径第八步:点击确定、点击finish第九步:打勾,点击OK第十步:应用、完成...原创 2021-02-12 12:04:26 · 780 阅读 · 0 评论 -
项目二:客户信息管理软件
需求说明:***该软件能够实现对客户对象的插入、修改和删除(用数组实现),并能狗打印客户明细表。CMUtility.javapackage util;import java.util.*;/**CMUtility工具类:将不同的功能封装为方法,就是可以直接通过调用方法使用它的功能,而无需考虑具体的功能实现细节。*/public class CMUtility { private static Scanner scanner = new Scanner(System.in);转载 2021-02-12 11:41:53 · 403 阅读 · 0 评论 -
十大排序(顺序不分优劣)
一、 折半插入public class BinaryInsertSort { public static void binaryInsertSort(int[] data) { System.out.println("开始排序"); int arrayLength = data.length; for (int i = 1; i < arrayLength; i++) { int temp = data[i]; int low = 0; int high = i -转载 2020-12-08 21:53:27 · 153 阅读 · 0 评论 -
数组
一、一维数组一、数组的概述1.数组(Array)是多个相同类型的数据按照一定顺序排列的集合,并用一个名字命名,并通过编号的方式对这些数据进行统一管理。2. >数组名>元素>角标(下标、索引)>长度(元素的个数)3.数组的特点:1)有序排列2)数组属于引用数据类型,但数组的元素可以是基本数据类型,也可以是引用数据类型3)创建数组对象会在内存中开辟一整块连续的空间4)数组的长度一旦确定,就不能更改4.数组的分类:1)按照维数:一维数组、二维数组2)按照元素原创 2020-12-08 21:42:30 · 156 阅读 · 0 评论 -
Eclipse的基本使用配置
原创 2020-12-08 21:24:37 · 137 阅读 · 0 评论 -
项目一:家庭记账软件
需求说明:1.模拟实现一个基于文本界面的《家庭记账软件》2.该软件能够记录家庭的收入、支出,并能够打印收支明细表3.假设家庭起始的生活基本金为0元。每次登记收入后,收入的金额应累加到基本金上,并记录本次收入明细,以便后续的查询。每次登记支出后,支出的金额应从基本金中扣除,并记录本次支出明细,以便后续的查询。查询收支明细时,将显示所有收入、支出列表代码:Utility.java/**Utility工具类:将不同的功能封装为方法,就是可以直接通过调用方法使用它的功能,而无需考虑具体的功能实现原创 2020-11-26 15:33:26 · 550 阅读 · 0 评论 -
综合实例一
示例1:(从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入0时中止)import java.util.Scanner;class Test1{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); int positiveNumber = 0;//记录正数的个数 int negativeNumber = 0;//记录负数的个数 while(true){//for(原创 2020-11-24 20:18:47 · 92 阅读 · 0 评论 -
程序流程控制
一、顺序示例class Test { public static void main(String[] args) { int num1 = 1; int num2 = 2; int num3 = num1 + num2; System.out.println(num3); }小结程序从上到下逐行地执行,中间没有任何判断和跳转。二、分支1.if-else示例1:import java.util.Scanner;class IfTest { public sta原创 2020-11-24 18:25:35 · 202 阅读 · 0 评论 -
变量与运算符
一、String示例class StringTest{public static void main(String[] args){int number = 1001;String numberStr = “学号:”;String info =numberStr + number;//连接运算System.out.println(info); //************ //练习1 char c = 'a';//a: 97 A:65 int num = 10; String原创 2020-11-24 16:33:49 · 138 阅读 · 1 评论 -
第一个JAVA程序的总结
一、第一个JAVA程序1.代码public class HelloWorld{public static void main(String[] args){System.out.println(“helloWorld”);}}二、总结1.java程序编写-编译-运行的过程编写:将编写的java代码保存以“ .java ”结尾的源文件中编译:使用javac.exe命令编译java源文件。格式:javac 源文件. java(会生成一个或多个字节码(.class)文件,文件名与java源文原创 2020-10-06 08:20:46 · 195 阅读 · 0 评论 -
JDK 8的安装与配置及常见问题的解决(win10)
一、JDK 8的安装与配置1.打开http://www.oracle.com 网页,下载对应平台合适的JDK版本2.双击下载的 exe,如 jdk-8u131-windows-x64.exe3.进入安装向导3.更改安装路径,如 D:\developer_tools\Java\jdk1.8.0_131\ (不要含有中文)4.选择安装所有组件4.开始安装5.安装 jre,可以更改 jre 安装路径(过程同上述安装目录的选择)(说明:jdk已经包含了jre,但因为后期eclipse需要识原创 2020-09-24 09:54:16 · 1481 阅读 · 1 评论 -
线程
一、进程和线程的区别进程1、就是独立的程序,通过系统分配,获取系统的CPU、内存、显卡、网络和磁盘这些资源。2、由多个线程组成,而且至少有一个线程3、进程申请的是系统的资源4、具有独立性和互斥性线程1、线程就是进程中的一个功能2、抢占式运行:CPU执行程序是按照时间片来进行执行的。3、资源共享:一个当前程序中的线程可以共享程序的资源,如CPU4、线程申请的是进程的资源二、线程的优缺点优点:1、提高资源的利用率2、电脑可以同时执行多个程序,提高工作效率3、提升用户体验劣势原创 2021-03-20 10:12:00 · 109 阅读 · 0 评论 -
常用类(StringBuffer/System/RunTime/Date)
一、StringBuffer假拼接public class Demo { public static void main(String[] args) { //字符串 String是一个不可改变的量 String str = "听闻远方有你"; str += "动身跋涉千里"; str += "我吹过你吹过的风"; str += "这算不算相拥"; /* * 上面到底有几个字符串??原创 2021-03-18 20:16:03 · 89 阅读 · 0 评论 -
IO流
一、缓冲的概念例:看视频的时候觉得卡,等他一会,让他缓冲一下。快递不是一件商品发过来,攒够一车发过来。计算机的cpu通过内存从磁盘上面获取数据的,不是一个字节一个字节读的。每次从磁盘上面读4kb的数据。这是为了减少cpu通过内存访问磁盘的次数。1.为了提高读取和存储的效率2.保护咱们的磁盘(硬盘)操作文件:读取和写入数据,如果你按照一个字节或者一个字符进行处理的时候,效率是非常低的。采用缓冲的概念来进行读取和写入:1.读取数据,通过内存访问此磁盘的习惯,读取的是4kb原创 2021-03-18 19:09:33 · 143 阅读 · 2 评论 -
File类
一、概述File是sun公司给java程序员提供的一个操作文件和文件夹的一个类路径问题:相对路径和绝对路径相对路径:基于你目前的环境做出一个判断相对于谁,得有一个参照物. 当前工作目录… 当前工作目录的父目录/上一级目录...原创 2021-03-17 20:28:49 · 173 阅读 · 1 评论 -
Map集合
一、概述Map接口和Collection接口没有关系Collection:List和SetMap双边队列:成双成对键值对:key-value键是唯一的,一个键只能对应唯一的数据,而值可以是相等的,可以对应多个键例:身份证号-名字Map<K, V>在map双边对列中,存放的元素都是键值对形式的–|HashMap<K,V>底层是一个hash表,存储的就是当前键值对的key,就意味着你的key不能重复–|TreeMap<K, V>底层是一个二叉树(原创 2021-03-17 17:39:16 · 71 阅读 · 0 评论 -
匿名内部类
一、基于abstract的匿名内部类不是声明的时候没有类名,而是实例化的时候可以不写变量的名字abstract class AbstractTestType { abstract public void test();}class TestA extends AbstractTestType { @Override public void test() { System.out.println("一个类继承了AbstractTestType,调用了此方原创 2021-03-16 21:46:19 · 86 阅读 · 0 评论 -
HashSet(重写hashCode和equals)
一、概述Collection下面有两个子接口:List: ArrayList LinkedList Vector 可重复的,有序的Set: HashSet 底层是一个hash表 存储效率相当高TreeSet底层是一个树状结构 要求保存的数据必须是有比较顺序的。自然顺序。Set接口下面没有独特的方法,完全可以使用Collection下面的方法二、示例(重写hashCode和equals):import java.util.HashSet;import java.util.Se原创 2021-03-16 21:17:59 · 332 阅读 · 0 评论 -
Object类
一、概述Object类是所有类的基类二、常用方法toString();返回的是类的字符串的表现形式int hashCode();返回对象的hash码值。Object类的hashCode.返回对象的内存地址经过处理后的结构,由于每个对象的内存地址都不一样,所以哈希码也不一样。boolean equals(Object obj);比较两个对象是否相等,是 根本的比较方式:比较两个内存的首地址。是否相等,如果相等的话就返回true,如果不相等就返回false【注意事项】1、J原创 2021-03-16 20:03:24 · 140 阅读 · 0 评论 -
LinkedList
一、<html><body bgcolor = "#F5F5F5">哈哈哈哈</body></html>原创 2021-03-16 17:05:24 · 140 阅读 · 0 评论 -
List接口的常用方法
一、List的认识LIst是Collection的子接口意味着Collection下面所有的方法 List都是可以使用的,并且还有自己的方法,List比Collection 方法多List接口存储数据的有什么特点: 有序的可重复的、 有序:添加顺序和保存顺序一致。取数据的时候,通过for循环的索引下标 可重复的:元素可以是相同的二、List的常用方法增:add(int index,E e):指定下标添加指定的元素addAll(Collection <?原创 2021-03-15 17:50:43 · 366 阅读 · 1 评论