个人JAVA学习笔记
丢丢diu丢
CSDN,做笔记用的……
展开
-
JavaSE_Day28_获取、访问Field—可变长度参数—反射\调用Method、Construcor—注解
1.获取、修改Field(属性、成员)1.1.获取Field以student为例:class student{ public String name; private int age; boolean sex; protected int no; }部分提要:输出属性、成员的修饰符"(eg:public、protected、private……) Modifier.toString(xxxx.getModifiers())输出属性、成员的类型(原创 2020-09-23 21:18:21 · 341 阅读 · 0 评论 -
JavaSEDay27—反射机制获取class、实例化对象—资源绑定器—类加载器—双亲委派机制
1.反射机制1.1、什么是反射机制?反射机制有什么用?反射机制:可以操作字节码文件作用:可以让程序更加灵活。1.2、反射机制相关的类在哪个包下? java.lang.reflect.*;1.3、反射机制相关的主要的4个类?1、代表整个字节码,代表一个类型,代表整个类 java.lang.Class:代表整个字节码,代表一个类型,代表整个类。2、代表字节码中的方法字节码。代表类中的方法 java.lang.reflect.Method:代表字节码中的方法字节码原创 2020-09-22 18:12:11 · 184 阅读 · 0 评论 -
JavaDay26—守护线程—定时器—第3种线程实现—wait和notify机制
1.守护线程xx.setDaemon(true);true表示设置xx为守护线程 backupData.setDaemon(true);(本例中线程名:backupData)1.1.java语言中线程分为两大类:(1):用户线程(2):守护线程(后台线程) 其中具有代表性的守护线程:垃圾回收线程1.2.守护线程的特点:一般守护线程是一个死循环,所有的用户线程只要结束,守护线程自动结束。 注意:主线程main方法是一个用户线程。1.3.守护线程用在什原创 2020-09-21 17:52:30 · 183 阅读 · 0 评论 -
JavaDay25—多线程—线程sleep—线程终止(强行vs合理)—线程调度(优先级、让位、合并)—线程安全—synchronized
1.多线程基础知识1.1.什么是进程?什么是线程?进程是一个应用程序(1个进程是一个软件)。线程是一个进程中的执行场景/执行单元。一个进程可以启动多个线程。1.2.进程和线程是什么关系?举个例子进程可以看做是现实生活当中的公司,线程可以看做是公司当中的某个员工。阿里巴巴:进程马云:阿里巴巴的一个线程张勇: 阿里巴巴的一个线程苹果公司:进程乔布斯:苹果的一个线程库克:苹果的一个线程进程A和进程B的内存独立不共享。(阿里巴巴和京东资源不会共享的!)魔兽游戏是一个进程原创 2020-09-19 20:18:35 · 302 阅读 · 0 评论 -
JavaDay24——作业:目录拷贝(基于递归算法)
拷贝目录:将 D:\JavaSEadvance\IOTest02\src\IOhomework\FileOut 拷贝到 C盘根 下…需要使用到: FileInputStream FileOutputStream File可能需要使用到递归。你尝试实现一下!package IOhomework;import java.io.*;public class ioHomeWork { public static void main(String[] ..原创 2020-09-17 16:12:45 · 135 阅读 · 0 评论 -
JavaDay23_9.16—缓冲流专属—数据流专属—标准输出流—File类—序列化与反序列化—IO+Properties联合应用
1.缓冲流专属(以字符流为例)不需要中间数组,自带缓冲 java.io.BufferedReader java.io.BufferedWriter java.io.BufferedInputStream java.io.BufferedOutputStream转换流:(将字节流转换成字符流) java.io.InputStreamReader java.io.OutputStreamWriter1.1.java.io.BufferedRead原创 2020-09-16 23:15:16 · 169 阅读 · 0 评论 -
JavaDay22—IO流—字节流&字符流的读写
1.研究IO流,我们主要研究什么?怎么new流对象。调用流对象的哪个方法是读,哪个方法是写。因为:java中所有的流都是在:java.io.*;下。2.什么是IO流?I : InputO : Output通过IO可以完成硬盘文件的读和写。+3.IO流的分类?在java中只要“类名”以Stream结尾的都是 字节流。以“Reader/Writer”结尾的都是 字符流。3.1.按照流的方向进行分类:以内存为参照输入流:往内存中去,叫做输入(Input)。或者叫做读(R原创 2020-09-14 21:36:32 · 156 阅读 · 0 评论 -
JavaDay21——学集合Collection、Map,究竟学的是什么?
1.学什么?1.1、每个集合对象的创建(new)1.2、向集合中添加元素1.3、从集合中取出某个元素1.4、遍历集合2、主要的集合类:2.1.有序可重复:ArrayListLinkedList2.2.无序不可重复:HashSet (HashMap的key,存储在HashMap集合key的元素需要同时重写hashCode + equals)TreeSet(底层是:TreeMap)HashMapProperties(key、value只能是String类型)TreeMap..原创 2020-09-07 18:45:00 · 65 阅读 · 0 评论 -
JavaDay21—Map—Collections方法类
1.Map中常用的方法1.1.新建HashMapMap<Integer,String> m1=new HashMap();1.2.xx.put(Object key,Object value),向Map集合中添加键值对 m1.put(1,"first"); m1.put(6,"sixth"); m1.put(4,"forth"); m1.put(2,"second"); m1.put(1,"first"); m1.put(7,"seventh"); m原创 2020-09-07 18:37:04 · 130 阅读 · 0 评论 -
JavaDay20—List_Collection_ArrayList_LinkedList_HashSet_TreeSet
1.List的特有方法 1.void add(int index, Object element);//向下标index处,加入元素element。注意index必须是数组的最后一个空元素 2.Object set(int index, Object element);//修改指定下标index的元素内容,index任意取 3.Object get(int index);//返回指定下标对应的元素 4.int indexOf(Object o);//返回元素为obj的第一个元素的下标原创 2020-09-05 16:18:50 · 200 阅读 · 0 评论 -
JavaDay19—p184-p199—集合——remove和contains底层调用equals方法(equals有时要重写)
1、什么是集合?有什么用?数组其实就是一个集合。集合实际上就是一个容器。可以来容纳其它类型的数据。1.1.集合为什么说在开发中使用较多?集合是一个容器,是一个载体,可以一次容纳多个对象。 在实际开发中,假设连接数据库,数据库当中有10条记录, 那么假设把这10条记录查询出来,在java程序中会将10条数据封装成10个java对象, 然后将10个java对象放到某一个集合当中, 将集合传到前端,然后遍历集合,将一个数据一个数据展现出来。1.2、集合不能直接存储基本数据类型,另原创 2020-09-03 23:22:20 · 289 阅读 · 0 评论 -
Day18——9.2——考察继承、接口、异常、多态
开放型题目,随意发挥:写一个类Army,代表一支军队,这个类有一个属性Weapon数组w(用来存储该军队所拥有的所有武器),该类还提供一个构造方法,在构造方法里通过传一个int类型的参数来限定该类所能拥有的最大武器数量,并用这一大小来初始化数组w。该类还提供一个方法addWeapon(Weapon wa),表示把参数wa所代表的武器加入到数组w中。在这个类中还定义两个方法attackAll()让w数组中的所有武器攻击;以及moveAll()让w数组中的所有可移动的武器移动。写一个主方法去原创 2020-09-02 22:53:00 · 157 阅读 · 0 评论 -
Day18_p158-p183——异常
1.异常的作用:增强程序健壮性。自定义异常的两个要素:*1.继承Exception或RuntimeException,*2.无参构造、有参构造方法class InputException extends Exception{ /***编译时异常**/ public InputException() { } public InputException(String str) { super(str); }}2.java中异常以类和对象的形式原创 2020-09-02 21:30:08 · 147 阅读 · 0 评论 -
JavaDay17-p143-p157—日期处理-获取毫秒数—数字类Decimal—随机数—枚举
1.日期处理1.1.获取当前时间 Date d= new Date(); //创建Date对象1.2.日期格式化:Date—>String yyyy-MM-dd-hh:mm:ss:sss //输出:2020-09-01-20:59:48:048 /***Date——>String***先创建Format对象**/ SimpleDateFormat YMDhms=new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss:sss")原创 2020-09-01 21:23:22 · 164 阅读 · 0 评论 -
JavaDay17——一维数组模拟栈——酒店管理系统
编写程序,使用一维数组,模拟栈数据结构要求: 1.这个栈可以存储java中任何引用类型的数据 2.在栈中提供push方法模拟压栈,(栈满了,要有提示信息) 3.在栈中提供pop方法弹栈(栈空了要有提示信息) 4.编写测试程序,new栈对象,调用push、pop来模拟压栈、弹栈/****完全对象实现 * 编写程序,使用一维数组,模拟栈数据结构 * 要求: * 1.这个栈可以存储java中任何引用类型的数据 * 2.在栈中提供pus...原创 2020-09-01 11:15:30 · 241 阅读 · 0 评论 -
JavaDay16-P104-P142—二分法查找—String类—常量池—包装—装箱、拆箱—NumberFormatException
1.二分法查找——建立在数组排序之上案例程序:class BinarySearch{ public static void binarySearch(int[] arr,int des) { Arrays.sort(arr);/**对数组排序*/ int begin=0; int end=arr.length; while (begin<=end){ int mid=(begin+end)/2;原创 2020-08-31 21:51:18 · 297 阅读 · 0 评论 -
JavaDay15——数组——冒泡排序——选择排序
1.数组1.1.数组的基本知识:1.空间存储上,内存地址是连续的。2.每个元素占用的空间大小相同。3.首元素的内存地址即“数组的地址”。4.通过下标可以计算出偏移量。5.通过一个数学表达式,就可以快速计算出某个下标位置上元素的内存地址,直接通过内存地址定位,效率非常高。1.2.数组的优、缺点优点:检索效率高。(条件:1、4、5)缺点:随机增删效率较低(注意,是随机!数组最后一个元素的增删效率不受影响。)数组无法存储大数据量。(因为很难在内存中找到一块很大的、地址连续的内存空间)1原创 2020-08-30 18:02:58 · 238 阅读 · 1 评论 -
JavaDay14—访问权限—Object类—equals方法—finalize方法—内部类(匿名内部类)
1.访问权限范围比较:public > protected > 默认 > private属性\方法:这4个都能去修饰类:public、默认可以去修饰接口:public、默认可以去修饰修饰符同类同包子类任意位置public√√√√protected√√√×默认√√××private√×××访问权限主程序:import china.scut.School;public class Access原创 2020-08-29 18:09:02 · 147 阅读 · 0 评论 -
JavaDay13—抽象类—接口—package\import
1.抽象类1.1.什么是抽象类?类与类之间有共同特征,将这些特征提取出来,形成抽象类抽象类无法创建对象(无法实例化)抽象类是用来继承的1.2.抽象类属于引用数据类型1.3.语法:[修饰符列表] abstract class 类名{ 类体; }1.4.abstract与final无法联合使用1.5.抽象类的子类可以是抽象类1.6.抽象类可以有构造方法,供子类使用1.7.抽象方法的特点:public abstract void doSome();特点:1.无方法体,原创 2020-08-28 17:43:43 · 205 阅读 · 0 评论 -
JavaDay12——构造方法能被继承吗?——不能!!!
构造构造函数和类同名,父类和子类肯定不同名,那父类的构造函数放在在子类里有什么用啊,那不成一般方法了吗?所以父类的构造函数是无法继承的。 引用传智播客的老毕语录调用:子类继承父类的时候,先运行父类构造函数;具体的说就是运行父类时就会先“调用”父类的构造函数,(利用super()、super(实参列表)调用)注意“调用”和继承不是一个含义,实质上是“自动运行”。...原创 2020-08-27 22:21:41 · 1040 阅读 · 0 评论 -
JavaDay12——final关键字
final关键字注意事项:1.final修饰的类无法被继承2.final修饰的方法无法被覆盖(但仍然能正常被调用)3.final修饰的变量只能赋值一次。(包括引用变量)4.final修饰的引用一旦指向某个对象,则不能再重新指向其他对象,但该对象内部的数据依然可以修改5.final修饰的实例变量必须手动初始化,不可用系统默认值(简称:sun公司不背锅!)6.final修饰的实例变量一般和static联用,称为常量1.final修饰的类无法被继承执行结果:程序:public class F原创 2020-08-27 21:21:17 · 131 阅读 · 0 评论 -
JavaDay12——程序案例:猜数字
1.猜数字程序要求:类A中有变量v,从键盘接收数字作为v的初始值类B,对v进行猜测如果大了,则提示——大了如果小了,则提示——小了如果正确,则提示——成功2.执行结果:/*猜数字:类A中有变量v,从键盘接收数字作为v的初始值类B,对v进行猜测 如果大了,则提示——大了 如果小了,则提示——小了 如果正确,则提示——成功*/public class superhome{ public static void main(String[] args){ System.out原创 2020-08-27 16:55:06 · 130 阅读 · 0 评论 -
JavaDay11—方法覆盖—多态—super关键字
1.方法覆盖——改变访问的方法目的地1.1满足什么条件才能构成方法覆盖?(1)、两个类必须有继承关系(2)、重写之后的方法和之前的方法具有:相同的返回值类型相同的方法名相同的形参列表(3)、访问权限不能更低,可以更高(父类中的私有方法不能被覆盖)(4)、重写之后的方法不能比之前的方法抛出更多的异常,可以更少1.2.几个注意事项(1)、方法覆盖只是针对方法,与属性无关(2)、私有方法无法覆盖(3)、构造方法不能被继承,故也不能被覆盖(4)、方法覆盖只针对实例方法,静态方法覆盖没有原创 2020-08-27 11:07:11 · 116 阅读 · 0 评论 -
JavaDay10——继承——extends关键字
1.子类继承父类之后,能用子类对象文件调用父类方法吗?可以2.何时使用继承?两者关系满足“is a”时:eg. Credit is a AccountDog is a Animal3.任何一个类,在没有显示继承任何类时,默认继承Object4.Y继承了Z,X继承了Y,则X间接继承了Z。案例1:银行卡账户 与 信用卡账户 的继承。输出结果:public class ExtendsTest{ //入口 public static void main(String[] args原创 2020-08-27 09:26:28 · 154 阅读 · 0 评论 -
JavaDay9—封装—实例方法—static—静、动态代码块—this用法—8.24
1.封装1.1.封装的作用(1)保证内部结构的安全,外部人员不可随意访问(2)屏蔽复杂,暴露简单不封装会使xxx类的属性对外暴露,可以被随意访问、更改,不安全。1.2.封装方法—private表示私有的,被他修饰后,该数据只能在“当前类”中访问。封装代码的两步:(1)、属性私有化(private)(2)、1个属性对外提供2个set\get方法,可以在set方法中设立关卡(限定传入数据的取值范围,eg.年龄不能为负)保证数据安全强调:(1).set、get都是实例方法,不可带static原创 2020-08-27 09:26:43 · 298 阅读 · 0 评论 -
JAVADay8—面向对象—类与对象—空指针异常—参数传递—构造方法
标题1.面向对象与面向过程的区别:面向对象:是一种以过程为中心的编程思想,分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。优点:小型项目效率较高。不需要提前进行对象的提取、模型的建立,直接干活写代码。缺点:耦合度高、拓展性差、复用性差比如蛋炒饭(鸡蛋跟米饭充分混合),端上来之后你说只想吃米饭,就得很困难的把鸡蛋挑拣出去。面向过程:更符合人类的思维方式,人类就是以“对象”的方式去认识世界的。把世界分割成不同的单元,然后每个单元都实现成对象,给环境一原创 2020-08-27 09:27:00 · 198 阅读 · 0 评论 -
JavaDay8—递归——8.23
1.递归使用事项1.1.要正确设置递归结束条件1.2.尽量不要使用递归。(1.比较容易出现StackOverflowError,2.占用较大的占空间内存)1.3.当出现StackOverflowError错误的时候,可能的原因:1.3.1.没正确设置递归结束条件1.3.2.占内存空间分配不足2.案例分析——递归计算计算1+…+N的和\N的阶乘public class method{ public static void main(String[] args){ java.util.原创 2020-08-27 09:27:14 · 109 阅读 · 0 评论 -
JavaDay7—方法的作用、语法机制、调用和重载—JVM内存结构—栈的数据结构
标题1.方法的作用——可以让代码重新使用(C语言叫函数——Java叫方法)eg:两数求和不带返回值的void型方法public static void Sum(int x,int y){ int z=x+y; System.out.println(z);//输出求和结果}带返回值的int型方法public static int Sum(int x,int y){ int z=x+y; return z;//注意返回值类型要和方法定义类型一致,否则报错 //此处z也可以是sh原创 2020-08-27 09:27:28 · 131 阅读 · 0 评论 -
JAVADay6—控制语句for、while循环—转向语句break、continue
1.for循环——for(初始化表达式;条件表达式;更新表达式)for循环可以执行0~n次。1.1.初始化表达式;条件表达式;更新表达式都不是必须的。for( ; ; ){ System.out.println("死循环")}1.2.更新表达式中,++i与i++效果一样1.2.1、输出0~9for(int i=0;i<10;i++) System.out.println(i)或者for(int i=0;i<10;++i) System.out.println(i)原创 2020-08-27 09:27:42 · 176 阅读 · 0 评论 -
JAVADay5—if语句—switch语句(case穿透现象)—8.20
1.if语句——if(boolean型)(注意只能是boolean型)区别以下两种:boolean型变量可以在if的括号内使用赋值号“=”public class ifo{ public static void main(String[] args){ boolean s=false; if(s=true)//这里写赋值号,编译没错。 { System.out.println(s);//输出结果是:true } }}除boolean外的其他变量不可在if的括号内使用赋值号“=”原创 2020-08-27 09:27:58 · 168 阅读 · 0 评论 -
JavaDay4-8.19——java接收键盘输入
方法1:public class keyinput{ public static void main(String[] args){ //创建键盘扫描对象 java.util.Scanner input =new java.util.Scanner(System.in); //“input”是自定义的,可以自定义改动。 int i=input.nextInt(); //接收整数。此处的input与上一行保持一致 System.out.println("输入结果:"+i);原创 2020-08-27 09:28:14 · 122 阅读 · 0 评论 -
JavaDay3—数据类型6条转换规则—运算符—08.18
1.数据类型Q1:规定数据类型有什么用?A1:不同数据类型,占用空间不同。Q2:8种数据类型,占用空间大小排列?A2:byte(1字节)<short\char(2字节)<int(4字节)<long(8字节)<float(4字节)<double(8字节)。【1.浮点型的就是比整数型大,死记硬背吧。2.Boolean型数据理论上只占1bit空间,但是存储时还是占1字节空间】1.1、基本数据类型(上面8种)、引用数据类型(String字符串型)1.2取值范围1.3.编原创 2020-08-27 09:28:27 · 152 阅读 · 0 评论 -
JAVA学习Day2—public class与class的区别—标识符—变量3要素—2020.8.15
1.程序的注释public class HelloWorld{ //public表示公开的,class表示这是一个类,类名是HelooWorld public static void main(String[] args){ //这块是main方法,是程序入口 System.out.println("Hello World"); //向控制台输出一句话 }}main方法在类体里,也必须在类体里。没有main方法,则不可编译执行。public class 与 class的区别:.原创 2020-08-27 09:28:52 · 817 阅读 · 0 评论 -
JAVA学习Day1—DOS命令与JAVA发展史—2020.8.14
一、Dos命令首先学习基础的Dos命令操作:mkdir 文件名——创建文件夹cd .. ——回到上级目录cd 某路径——转到指定路径Tab键可以补全当前文件夹下的文件名ipconfig——查看IP地址ping 域名\IP地址——查看对应网站是否能正常连接,以及连接速度Ctrl + c——强行终止Dos中的循环指令二、常用快捷键Ctrl+Z——撤销Ctrl+Y——重做三、JAVA发展史JDK(JAVA Development Kit)一个最根本的环境JS原创 2020-08-27 09:29:12 · 204 阅读 · 0 评论