
JAVA进阶教学
文章平均质量分 60
LBJ8888888
小白一枚,希望能用人话,读懂代码
展开
-
JAVA进阶教学之(序列化和反序列化)
1、序列化Serialize和反序列化DeSerialize的概念在内存和硬盘的数据交互过程中,将Java对象拆分的过程序列化就是将Java内存中的Java对象切割成像序列一样传递到硬盘文件中存储 (拆分对象)反序列化就是通过硬盘序列好的Java对象组装重新返回到Java内存中(组装对象)图示:...原创 2021-05-02 21:30:15 · 473 阅读 · 1 评论 -
JAVA进阶教学之(IO流)
1、什么是IO流I:Input 例如:从硬盘中读取数据进入CPU的内存O:Output 例如:从CPU的内存读取数据进入硬盘流:在管道(pipe line)中产生的一种计算模式IO流:以内存为参照物,完成硬盘文件的读和写2、流的分类按流的方向分类:输入内存(读Read),称为输入流 输出内存(写Write),称为输出流按读取方式分类:万能字节流,所有文件都是字节构成,例如:流一次读取一个字节byte,等同于一次读取8个二进制 方便字符流,普通文件..原创 2021-04-28 23:46:28 · 374 阅读 · 3 评论 -
JAVA进阶教学之(集合)
1、集合概述什么是集合,有什么用?数组其实就是一个集合,集合实际上就是一个容器,集合可以容纳引用类型的数据为什么集合在开发中使用较多?集合是一个容器,一次可以容纳多个对象在实际开发中,假设网页内容连接的是数据库,数据库中有10条记录假设需要把这10条记录查询出来,在java程序中会将这10条数据封装成10个java对象,然后将10个java对象放到一个集合中,将集合传递给前端,然后遍历集合,将一个数据一个数据展现出来2、集合存储的数据类型集...原创 2021-04-15 14:20:23 · 413 阅读 · 0 评论 -
JAVA进阶教学之(foreach)
foreach:概念:就是for循环的一个增强版,可以方便程序员对于数组的直接操作,不用考虑数组下标的情况下进行遍历输出代码演示:package com.lbj.javase.collection;public class ForEachTest01 { public static void main(String[] args) { //定义一个一维数组 int[] arr={3,5,6,7,8}; //老方法:循环遍历.原创 2021-04-10 18:31:32 · 278 阅读 · 0 评论 -
JAVA进阶教学之(泛型)
泛型引言:泛型:泛型允许程序员在编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型 人话:泛型对规定范围产生约束,约束后只能存储泛型指定的类型 诞生:JDK5.0以后作用:泛型旨在程序的编译阶段起作用,只是给编译器参考使用的(运行阶段泛型没用) 使用:List<类名A标识符>,表示List集合中只允许存储类名A类型的数据,用泛型来指定集合中存储的数据类型,<类名标识符>里面一般是类名,也可以自定义类名标识符优点:集合存储的元..原创 2021-04-10 18:02:57 · 219 阅读 · 0 评论 -
JAVA进阶教学之(单链表数据结构)
什么是链表:内存地址不连续,基本单元是节点对象Node,单链表尾结点默认是null什么是链表中的节点:节点是单链表中的基本单元,每一个节点都有两个属性属性一:存储的数据属性二:下一个节点的内存地址什么是指针:一个内存地址就是一个指针,当一个对象没有被指针指向的时候,对象会被垃圾回收机制回收链表的优缺点有哪些:优点:随机增删元素效率高(因为存储上内存地址不连续,增删元素不涉及到大量元素位移)缺点:查询效率低(不能通过数学表达式计算被查找元...原创 2021-04-03 21:17:47 · 225 阅读 · 0 评论 -
JAVA进阶开发之(数组练习题)
1、题目:写一个Army类,代表一支军队 这个类有一个属性,Weapon[ ] w 数组,用来存储该军队所有武器 Army类提供一个构造方法,构造方法里面通过传递一个int类型的参数来限定该类所能拥有的最大武器数量,并用这一大小来初始化数组 w Army类提供一个addWeapon(Weapon wa)方法,表示把参数wa 所代表的武器加入到数组w中 在这个类中还定义两个方法attrackAll()让w 数组中的所有武器攻击 以及moevAll( ) 让w 数组中的所有可移动的武器移动...原创 2021-03-26 23:10:10 · 388 阅读 · 0 评论 -
JAVA进阶开发之(异常练习题)
编写程序模拟用户注册:1、程序开始执行的时候,提示用户输入“用户名”和“密码”信息2、输入信息之后,后台JAVA程序模拟用户注册3、注册时用户名要求长度在【6-14】之间,小于或者大于都表示异常注意:完成注册的方法放到一个单独的类中异常类需要自定义经验:引用等于null的这个判断最好放到所有条件的最前面,因为短路与的执行有可能会造成空指针异常username == null 不如写成 null == usernameusername.equals("ab.原创 2021-03-26 20:26:18 · 291 阅读 · 0 评论 -
JAVA进阶开发之(异常类)
1、什么是异常:当程序运行时发生的不正常的情况,JAVA会通过JVM给控制台打印一段异常信息给程序员程序员看到异常信息后,可以对程序进行修改,让程序更加健壮代码演示:package com.lbj.javase.exceptionTest;public class ExceptionTest02 { public static void main(String[] args) { int a=10; int b=0; //实际原创 2021-03-26 18:46:53 · 460 阅读 · 3 评论 -
JAVA进阶教学之(Enum枚举类)
首先,我们为什么要学习Enum枚举类我们引入一段代码:package com.lbj.javase.enumTest;public class EnumTest01 { public static void main(String[] args) { int retValue=divide(10,2); System.out.println(retValue); int retValue2=divide(10,0); S原创 2021-03-18 21:43:00 · 184 阅读 · 0 评论 -
JAVA进阶教学之(产生随机数)
import java.util.Random;代码演示:package com.lbj.javase.random;import java.util.Random;public class RandomTest01 { public static void main(String[] args) { //创建随机数对象 Random random=new Random(); int num1=random.nextInt();.原创 2021-03-18 20:37:45 · 197 阅读 · 0 评论 -
JAVA进阶教学之(数字格式化和高精度数字)
数字的格式化方便我们对于统计数字的时候便于区分代码演示:new DecimalFormat("###,###.##");package com.lbj.javase.number;import java.text.DecimalFormat;public class DecimalFormatTest01 { public static void main(String[] args) { //java.text.DecimalFormat 专门负责数字格.原创 2021-03-16 14:32:41 · 168 阅读 · 0 评论 -
JAVA进阶教学之(Date日期的处理)
两个类:Date类:获取系统当前日期,属于java.util.Date包内SimpleDateFormat类:将当前日期进行格式化处理,yyy-MM-dd HH:mm:ss SSS代码演示:Date转Stringpackage com.lbj.javase.date;import java.text.SimpleDateFormat;import java.util.Date;public class DateTest01 { public stati..原创 2021-03-16 14:16:30 · 223 阅读 · 0 评论 -
JAVA进阶教学之(8种包装类)
代码演示:public class IntegerTest01 { public static void main(String[] args) { //把100这个数字经过构造方法包装成对象 MyInt myInt= new MyInt(100); //doSome()方法虽然不能直接传100,但是可以传一个100对应的包装类型 IntegerTest01.doSome(myInt); } public s原创 2021-03-14 23:14:59 · 209 阅读 · 0 评论 -
JAVA进阶教学之(StringBuider进行字符串拼接)
这一章节我们学习到的是StringBuider进行字符串拼接,有同学们问,为什么学了StringBuffer字符串拼接后还要看这个,下面我们来说道说道代码演示:public class StringTest06 { public static void main(String[] args) { StringBuilder sb=new StringBuilder(); sb.append("a"); sb.append("b");原创 2021-03-14 13:35:01 · 304 阅读 · 0 评论 -
JAVA进阶教学之(StrngBuffer进行字符串拼接)
使用StringBuffer字符串拼接目的就是为了让字符串占用的内存空间减少,提高效率思考:我们在实际的开发中,如果需要进行字符串的频繁拼接,会有什么问题?答案:因为java中的字符串是不可变的,每一次拼接都会产生新的字符串,这样会占用大量的方法区内存,造成内存空间的浪费底层分析:代码演示:public class StringTest05 { public static void main(String[] args) { Str...原创 2021-03-12 21:51:03 · 710 阅读 · 0 评论 -
JAVA进阶教学之(String类的常用方法)
接下来我们进入的学习章程,就是可以通过查阅帮助文档进行实际的应有1.char charAt(intindex) 返回指定索引的 char价值。 代码示例:public class StringTest04 { public static void main(String[] args) { //String中常用的方法 //“中国人”是一个字符串String对象,只要是对象就能点.调用 char c="中国人"..原创 2021-03-09 22:34:09 · 154 阅读 · 0 评论 -
JAVA进阶教学之(String类的构造方法)
试题:问:以下程序一共创建了几个对象public class StringTest03 { public static void main(String[] args) { String s1=new String("aaa"); String s2=new String("aaa"); }}答:一共创建了3个对象1个对象是"aaa"在方法区字符串常量池中2个对象是堆内存中存储的String对象String类的构造方法实例:.原创 2021-03-09 12:04:20 · 190 阅读 · 0 评论 -
JAVA进阶开发之(String字符串的存储原理)
我们现在开始学习的就是一些工具类这些工具类只需要我们学会查阅帮助文档进行开发就可以实现很多功能例如:我们查看工具类String原创 2021-03-09 00:24:42 · 329 阅读 · 0 评论 -
JAVA进阶级开发之(Array工具类)
数组:常见的算法:1、排序算法:冒泡排序算法选择排序算法2、查找算法:二分法查找3、算法:实际上在java中不需要精通算法,因为java中已经封装好了算法,要排序的时候就进行调用方法就行例如:java中提供了一个数组工具类java.util.ArraysArray工具类既然是工具类,意味着java已经帮助程序员完成了封装等工作,这个工具类是带有static关键字的,因此调用的时候不需要频繁的new对象,直接类名.进行调用即可可以在ide..原创 2021-03-04 21:46:24 · 272 阅读 · 1 评论 -
JAVA进阶开发之(二维数组)
1、二维数组其实是一个特殊的一维数组,特殊在这个二维数组中每一个元素是一个一维数组2、就是一维数组里面都是一样的元素,二维数组就是把元素换成了一维数组3、实际开发中,使用最多的就是一维数组,二维数组很少使用,三维数组几乎不用4、二维数组静态初始化int[][] a={{1,2},{3,4},{5,6}};5、...原创 2021-02-23 18:09:40 · 503 阅读 · 0 评论 -
JAVA进阶教学之(一维数组)
1、java语言中的数组是一种引用数据类型。不属于基本数据类型 数组的父类是object2、数组实际上是一个容器,可以同时容纳多个元素(数组是一个数据的集合)3、字面意思:数组意味着一组数据4、数组当中可以存储“基本数据类型”的数据,也可以存储“引用数据类型” 的数据5、数组因为是引用类型,所以数组对象是堆内存中(数组是存储在堆当中的)6、数组中如果存储的是java对象的话,实际上存储的是对象的引用(内存地址)7、数组一旦创建,在...原创 2021-02-18 00:14:25 · 332 阅读 · 0 评论 -
JAVA进阶开发之(内部类概述)
匿名内部类(相当于此类没有名字):1.什么是内部类:在类的内部又定义了一个新的类2.内部类的分类:静态内部类:类似静态变量实例内部类:类似实例变量局部内部类:类似局部变量3.使用内部类编写的代码,可读性很差,能不用尽量不用4.匿名内部类是局部内部类中的一种,因为这个类没有名字而得名,叫匿名内部类5.不建议使用匿名内部类:因为一个类没有名字,就意味着没有办法重复使用,另外代码会太乱,可读性就会很差6.匿名内部类的特征:new 接口名(){} 后面的{} 代表了对接口的实现.原创 2021-02-15 20:23:16 · 165 阅读 · 0 评论 -
JAVA进阶教学之(Object类中的hashCode方法)
import java.util.Objects;/*hashCode方法在Object中的hashCode方法是怎样的?public native int hashCode();这个方法不是抽象方法,带有native关键字,底层调用的是c++程序hashCode() 方法返回的是int类型的哈希码实际上就是一个java对象的内存地址,经过哈希算法,得出的一个值所以hashCode()方法的执行结果可以等同看做一个java对象的内存地址 */public class Test01.原创 2021-02-13 22:57:12 · 422 阅读 · 0 评论 -
JAVA进阶教学之(Object类中的equals方法)
publicbooleanequals(Objectobj){ return (this == obj);}equals方法是判断两个对象的内存地址是否相等的(内存地址相等,保存的值也相等)== 比较是判断两个对象的值是否相等(保存的值相等)在Object类中的equals方法中,默认采用的是==判断两个java对象的内存地址是否相等,而我们应该判断的是两个java对选哪个的内容是否相等,所以老祖宗的equals方法不够用代码演示:...原创 2021-02-08 01:47:27 · 1431 阅读 · 0 评论 -
JAVA进阶教学之(Object类的toString方法)
1.toStringpublicStringtoString()返回对象的字符串表示形式。总的来说,这 toString方法返回一个字符串,“以文本方式表示”这个对象。其结果应该是一个简洁,但详实的代表性,是一个容易阅读的人。建议所有子类都重写此方法。Object类的toString方法返回一个包含该类的对象是一个实例的名称字符串的符号` @ ',和符号进制表示的对象的哈希码。换句话说,此方法返回一个等于值的字符串: getClass().getName() + '@' +...原创 2021-02-06 23:29:10 · 270 阅读 · 0 评论 -
JAVA进阶教学之(源码及API文档概述)
1.JDK类库的根类:Object这个从老祖宗类中的方法我们需要先研究一下,因为这些方法都是所有子类通用的。任何一个类默认继承Object就算没有直接继承,也会间接继承2.Object类中有哪些常用的方法呢?第一种:去源代码中查询(比较麻烦,源代码也比较难理解)第二种:去查询java的类库中的API帮助文档(API 和 API帮助文档是两码事情)3.什么是API帮助文档?API:Application Program Interface 由SUN公司编写好的这..原创 2021-02-06 22:23:43 · 223 阅读 · 0 评论