JavaSE
文章平均质量分 84
用于累积Java学习知识
浮生 丶如梦
在成为JAVA全栈工程师的路上慢慢升级中......(σ゚∀゚)σ..:*☆哎哟不错哦
展开
-
Day25_8 Java学习之UDP通信程序
解析:1.在上一篇文章中已经讲述过UDP通信的特点,在这里就不多说了,本文主要写的是UDP通信的实现。2.UDP是一个面向无连接,不可靠的传输层协议,它在java中的实现主要依靠两个类:DatagramSocket,DatagramPacket。......原创 2022-08-25 20:24:14 · 797 阅读 · 0 评论 -
Day24_8 Java学习之线程池、网络编程及TCP通信程序
解析:1.通过前面的文章讲述想必大家都知道了什么是线程,由于在使用线程时,若我们并发的线程及多,一个线程完成一个任务之后就死亡销毁,这样频繁的创建销毁是非常的消耗时间资源的,会极大的降低程序运行效率。2.为了解决上述的问题,就有了线程池。线程池:就是根据程序的运行需求先创建好N条线程放在线程池中等待,在需要时才随机的从池中抽取线程进行任务,任务完成后又回到线程池变成等待的空闲状态,这样会极大的提高效率。3.合理利于线程池带来的好处:3.1降低资源消耗。原创 2022-08-24 17:41:20 · 392 阅读 · 1 评论 -
Day23_8 Java学习之多线程安全、死锁及状态
解析:1.线程生命周期:就是线程从生到死。2.当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。在API中这个枚举中给出了六种线程状态:如下表所示:注意:关于CPU执行线程有两个概念需要了解下:CPU的执行资格:在CPU执行的队列中等待。还没有被CPU执行。CPU的执行权:当前持有CPU资源,正在被执行。线程状态导致状态发生条件NEW(新建)线程刚被创建,但是并未启动。还没调用start方法。原创 2022-08-23 19:27:27 · 274 阅读 · 1 评论 -
Day22_8 Java学习之反射、多线程
解析:1.我们在之前,学习的程序在没有跳转语句的前提下,都是由上至下依次执行,那现在想要设计一个程序,边打游戏边听歌,怎么设计?要解决上述问题,咱们得使用多进程或者多线程来解决.2.并行:指两个或多个事件在同一时刻发生(同时发生)。并发:指两个或多个事件在同一个时间段内发生。3.进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。线程。原创 2022-08-22 17:22:36 · 362 阅读 · 0 评论 -
Day19_8 Java学习之打印流、属性集、类加载器与反射
解析:1.java.util.Properties类继承与Hashtable,来表示一个持久的属性集。它使用键值结构存储数据,每个键及其对应值都是一个字符串。2.该类是Hashtable集合类的一个子类对象,Hashtable集合类现在已经被HashMap代替。3.该类是一个Map集合。之前学习的集合都是将数据存储到内存中,但是这个集合类它可以和IO流结合,直接把集合中的数据保存在硬盘的文件中,或者直接从硬盘的文件中加载数据保存在集合中;4.这个集合中的键和值都是String类型的字符串;原创 2022-08-19 17:34:15 · 468 阅读 · 0 评论 -
Day18_8 Java学习之缓冲流、转换流与序列化流
解析:1.缓冲流是对4个基本的FileXxx流的增强,所以也是4个流,按照流操作数据的数据类型分类:1.1字节缓冲流,1.2字符缓冲流,2.缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。解析:1.首先我们得了解一下什么是字符编码与字符集:字符编码:就是一套我们人类语言的字符与二进制数之间的对应规则。字符集:是一个系统支持的所有字符的集合,包括各国家文字、标点符号、数字等。...原创 2022-08-18 20:00:43 · 821 阅读 · 0 评论 -
Day17_8 Java学习之IO、字节流与字符流
解析:1.IO分别代表输入(Input)流和输出(Output)流。2.在Java中所有数据都是使用流读写的。流是一组有序的数据序列,将数据从一个地方带到另一个地方。3.就是java提供的一个IO技术,它主要的功能就是把我们程序中的数据可以保存到程序以外的其他持久设备中(如:我们电脑的硬盘),或者从其他持久设备中。4.按流向分为:输入(Input)流和输出(Output)流;按类型分为:字节输入:InputStream ,字节输出:OutputStream。...原创 2022-08-17 19:13:02 · 334 阅读 · 1 评论 -
Day16_8 Java学习之File类与递归
解析:1.在Java中,File 类是 java.io 包中唯一代表磁盘文件本身的对象,也就是说,如果希望在程序中操作文件和目录,则都可以通过 File 类来完成。2.File 类定义了一些方法来操作文件,如新建、删除、重命名文件和目录等。3.File类就是描述文件或文件夹的,只要我们在Java中要操作文件或文件夹,就找File类。...原创 2022-08-16 20:02:20 · 523 阅读 · 0 评论 -
Day12_8 Java学习之Collections、TreeSet与Map集合
解析:1.Collections是在Java.util包下的对于集合操作的工具类。2.该类是Java提供的一个操作 Set、List 和 Map 等集合的工具类。3.由于该类的构造方法被私有化无法创建实例对象调用方法,所以Collections 类提供了许多操作集合的静态方法直接使用类名调用静态方法,借助这些静态方法可以实现集合元素的排序、查找替换和复制等操作。解析:1.方法中的某个参数在实际调用时,实参个数可以0个,或者1个,或者多个。这个参数就是可变参数。...原创 2022-08-15 20:42:37 · 362 阅读 · 0 评论 -
Day11_8 Java学习之自定义LinkedList集合类
解析:1.LinkedList 类采用链表结构保存对象,这种结构的优点是便于向集合中插入或者删除元素。2.需要频繁向集合中插入和删除元素时,使用 LinkedList 类比 ArrayList 类效果高,但是 LinkedList 类随机访问元素的速度则相对较慢。这里的随机访问是指检索集合中特定索引位置的元素。3.它也是长度可变的集合,且集合也是元素有序可重复也是只能存引用数据类型。解析:1.从代码的角度来看,就是一个Node类,链表是由多个节点串起来的,链表又分单向链表与双向链表。...原创 2022-08-11 19:02:03 · 827 阅读 · 0 评论 -
Day10_8 Java学习之知识点集合概述
2.try 中的 return 语句调用的函数先于 finally 中调用的函数执行,也就是说 return 语句先执行,finally 语句后执行,但 return 并不是让函数马上返回,而是 return 语句执行后,将把返回结果放置进函数栈中,此时函数并不是马上返回,它要执行 finally 语句后才真正开始返回!1.fianl关键字是作用域修饰符,主要用于修饰类,变量,方法,被该修饰的类不可被继承,变量不可再重新赋值,方法不可被重写。另一个是“xyz”对象,xyz在一个。......原创 2022-08-10 20:04:39 · 248 阅读 · 0 评论 -
Day8_8 Java学习之List集合类
解析:1.List 是一个有序、可重复的集合,集合中每个元素都有其对应的顺序索引。2.List 集合允许使用重复元素,可以通过索引来访问指定位置的集合元素。3.List 集合默认按元素的添加顺序设置元素的索引,第一个添加到 List 集合中的元素的索引为 0,第二个为 1,依此类推。4.List 实现了 Collection 接口,它主要有两个常用的实现类:ArrayList 类和 LinkedList 类。5.List集合的长度可变,且其中的数据类型只能为引用类型。............原创 2022-08-08 19:10:10 · 2209 阅读 · 0 评论 -
Day4_8 Java学习之集合
1.迭代是Collection集合元素遍历的一种方式。在取元素之前先判断集合中是否有元素,如果有,就把这个元素取出来。继续判断,如果有继续获取元素,直到集合中所有元素全部取出。这种取出方式专业术语称为迭代。遍历集合中的所有元素2.获取迭代器:Iterator iter = 集合.iterator();作用:判断是否有下一个元素作用:返回下一个元素作用:删除下一个元素4.使用通式:Iterator iter = 集合.iterator();}// 1.创建一个集合对象。...原创 2022-08-04 19:22:06 · 255 阅读 · 0 评论 -
Day8_3 Java学习之常用类三与异常处理
解析:1.Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能。2.如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类。基本类型对应的包装类(位于java.lang包中)byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBoolean。...原创 2022-08-03 20:59:19 · 320 阅读 · 1 评论 -
Day2_8 Java学习之常用类二
解析:1.Object 是Java类库中的一个特殊类,也是所有类的父类。也就是说,Java 允许把任何类型的对象赋给 Object 类型的变量。2.当一个类被定义后,如果没有指定继承的父类,那么默认父类就是 Object 类。1.该类与Object根类不同,Objects类是对象工具类,它里面的的方法都是用来操作对象的。2.在JDK7。......原创 2022-08-02 20:44:06 · 299 阅读 · 1 评论 -
Day1_8 Java学习之常用类
解析1.String类在java.lang包下,所以使用的时候不需要导包2.String类代表字符串,Java程序中的所有字符串文字(例如“abc”)都被实现为此类的实例,也就是说,Java程序中所有的双引号字符串,都是String类的对象3.字符串不可变,它们的值在创建后不能被更改例如Strings1="张三";s1="王五";相当与重新创建了一个“王五”对象,只是引用改变了,而原来的张三还在常量池中。...原创 2022-08-01 19:43:06 · 328 阅读 · 1 评论 -
Day28_7 Java学习之面向对象综合练习
解析1.该题基本涵盖了面向对象的所有知识点,比较考验对于面向对象的基础知识了解。2.从不同的角度分析问题得到的代码也就不一样,虽然结果是相同的,但是我们需要从个个方面去考虑,选择最优的代码,进而增强代码的健壮性,减少所存在bug的可能性。!!httpshttps。...原创 2022-07-28 19:20:29 · 231 阅读 · 0 评论 -
Day27_7 Java学习之final、枚举与接口
1.实例有限而且固定的类,在Java里被称为枚举类。2.Java枚举是一个特殊的类,一般表示一组常量。3.声明枚举时必须使用enum关键字,各个常量使用逗号,来分割。解析1.接口(英文Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。2.接口是Java中的一种类型【引用数据类型】方法,常量。3.接口是Java中的一种类型,没有构造方法,而且是抽象类型,不能直接创建对象使用。4.和抽象类很相似,需要定义子类去实现接口。.........原创 2022-07-27 16:50:09 · 214 阅读 · 0 评论 -
Day26_7 Java学习之多态与抽象
解析1.一个类中没有包含足够的信息来描绘一个具体的对象,那么这样的类称为抽象类。2.一个类被abstract关键字修饰,那么这个类就是一个抽象类。3.一个抽象类可以含有或者不含有抽象方法。语法定义publicabstractclass类名字{}解析1.一个方法使用abstract来修饰,则说明该方法是抽象方法,抽象方法只有声明没有实现,也就是没有方法体。特别注意abstract关键字只能用于普通方法,不能用于static方法或者构造方法中。语法定义解析。...原创 2022-07-26 17:25:15 · 151 阅读 · 0 评论 -
Day7_25 Java学习之static与多态
解析1.在类中,使用static修饰符修饰的属性(成员变量)称为静态变量,也可以称为类变量2.常量称为静态常量,方法称为静态方法或类方法,它们统称为静态成员,归整个类所有。3.静态成员不依赖于类的特定实例,被类的所有实例共享,就是说static修饰的方法或者变量不需要依赖于对象来进行访问,只要这个类被加载,Java虚拟机就可以根据类名找到它们。4.调用静态成员的语法格式类名.静态成员特别注意1、static修饰的成员变量和方法,从属于类。2、普通变量和方法从属于对象。解析1.解析。...原创 2022-07-25 17:30:33 · 306 阅读 · 1 评论 -
Day23_7 Java学习之阶段性总结二
解析只谈个人学习体会如有更好请留言指正1.首先学习是一种关于得到新知识,新体会的一种方式,也就是一种思想加行动上的结合。2.思想上就要集中于每天所要了解学习的新知识新事物。3.行动上就要结合思想上做以实践验证,避免天马行空的事情出现。4.学习要结合每个人自己的实际情况,不能好高骛远,也不能一直原地踏步,学习犹如逆水行舟不进则退。5.懂得预习,复习,与总结和比较与他人学习进度上的差异及时的调整自己的学习状态与进度6.总结的来说就是正确的思想并且加油实践行动。......原创 2022-07-23 19:42:14 · 65 阅读 · 0 评论 -
Day17 Java学习之面向对象构造方法练习体会
定义一个员工类Employee*自己分析出几个成员,然后给出成员变量*姓名name,工号id,工资salary*构造方法,*无参和有参的*getXxx()setXxx()方法,*以及一个显示所有成员信息的方法。并测试。原创 2022-07-20 17:17:55 · 249 阅读 · 0 评论 -
Day18 Java学习之面向对象继承思想
解析1.继承是面向对象的三大特征之一。2.继承是一种关系,就行两类之间的关系,至少有两个类。通说来说就像是子承父业。3.继承就是一个类A继承了另一个类B的所有成员,并且能够访问使用那些非私有成员。4.Java中的继承就是在已经存在类的基础上进行扩展,从而产生新的类。已经存在的类称为父类、基类或超类,而新产生的类称为子类或派生类。5.在子类中,不仅包含父类的属性和方法,还可以增加新的属性和方法。}Java语言摒弃了C++中难以理解的多继承特征,即Java不支持多继承解析声明不变,重新实现。......原创 2022-07-21 18:48:15 · 153 阅读 · 1 评论 -
Day13 Java学习之二维数组
注意:二维数组的动态初始化和静态初始化使用情况与一维数组一致。需求:公司销售额求和,第一季度:{22,66,44}、第二季度:{77,33,88}、第三季度:{25,45,65}、第四季度:{11,66,99}代码如下:运行结果:...原创 2022-07-13 19:34:47 · 253 阅读 · 0 评论 -
Java学习之Day2 初识Sacnner类和Random类及循环题练习
1、导包 2、创建对象 3、接收数据实例:需求:从控制台输入一个数字,并打印输出? 1、导包 2、创建对象 3、获取随机数案例:需求:中午不知道吃什么,产生随机数,如果是1就吃黄焖鸡,如果是2就吃螺蛳粉,如果是3就吃木桶饭,如果是4就吃花甲粉,都不是就不吃了代码:学习小结:原创 2022-06-28 17:02:06 · 261 阅读 · 1 评论 -
Day5 Java学习之java开发者的神兵利器——IDEA
1.打开IDEA、点击File>>New>>Project 2.点击Empty Project>>Next 3.修改项目名称Project name>>Project location(修改到你想要的目录)>>Finish 5.添加项目模块:Modules>>+号>>New Module 6.选择java>>Module SDK>>Next 7.修改java项目模块名称>>点击F原创 2022-07-01 19:12:07 · 1740 阅读 · 0 评论 -
Day14 Java学习之方法重载
1.重载在同一个类中的多个方法,同名不同参,静态多态性;2.重写就是覆盖动态多态性,重写是子类对父类的允许访问的方法的实现过程进行重新编写,返回值和形参都不能改变。即外壳不变,核心重写!3.重定义静态方法不能被覆盖,但这不意味着静态方法不能被重定义在子类,但是重定义和覆盖不是一回事。...原创 2022-07-14 19:55:07 · 411 阅读 · 0 评论 -
Day12 Java学习之十大排序算法:插入排序
图片演示如下: 代码演示如下:注意:若要进行降序排列则将 if (array[j] > temp)改为 if (array[j] < temp)即可 运行结果:从时间及空间复杂度上:平均时间复杂度:O(N^2),最差时间复杂度:O(N^2),空间复杂度:O(1)从稳定性上:插入排序是与冒泡排序都是一种稳定的排序法。......原创 2022-07-12 19:06:24 · 70 阅读 · 0 评论 -
Day6 Java学习之初始数组
数组动态初始化使用建议:如果不确定数组当中的具体数据,用动态初始化 数组静态初始化使用建议:已经确定了具体的数据,用静态初始化。 需求:拿到{88,99,77,89,67,5,98}成绩是77的这个同学的分数,给他的分数加5分。 代码如下: 需求:计算分数数组{78,88,99} 代码如下:原创 2022-07-05 00:26:07 · 86 阅读 · 0 评论 -
Day4 Java学习之打印图形循环练习及体会
代码如下: 二、需求: 代码如下: 二、图形循环解题思路与体会: 解题思路: 1.该类题目首先分析题目给图形中的行列关系 2.弄清楚行应该控制什么元素,列控制什么元素 3.已以上第一题题为例,其中行控制着换行元素,列元素控制打印星号元素 4.进而使用数学思想设行元素为x原创 2022-06-30 17:28:17 · 272 阅读 · 1 评论 -
Day7 Java学习之一维数组遍历练习体会
需求:请随机生成10个1~100之间的数字,求出大于这个数字的平均数的个数。解题代码如下:(答案不唯一,仅供参考) 其实在上述的代码中还存在一些问题: 耦合度太高的危害:耦合度太高不利于扩展和维护,修改一个类的内容要关联修改多个跟这个有关系的类 这个危害对于我们以后从事软件开发工作时是非常大的,建议重视!!!修改后的代码: 目的是使程序模块的可重用性、移植性大大增强。原创 2022-07-05 19:56:53 · 262 阅读 · 1 评论 -
Day10 Java学习之阶段性复查一
不配置的话就会出现如下错误:更加详细解释参考:开发Java程序为什么要配置环境变量? 首先我们得先知道什么是 JDK、JRE和JVM。 作用:JDK、JRE和JVM如下图:它们是一层一层的嵌套关系:JDK>JRE>JVM 标识符及作用:给类,方法,变量取名的符号 !!! 规则: 注意:变量是只是标识符的一种不能混为一谈在一口井中,有一只蜗牛白天爬3.5米,晚上掉下1.5米,井深57.6米,问蜗牛需要多少天爬出,请用程序实现。错误示范: 错误代码: 错误的代码运行结果: 分原创 2022-07-08 21:21:39 · 144 阅读 · 0 评论 -
Day16 Java学习之封装思想
解析1.JavaBean本身就是一个类,属于Java的面向对象编程。2.当一个类里面的所有成员属性都被私有化,而且提供get和set方法,我们把这种类叫做JavaBean类(实体类)原创 2022-07-19 15:25:37 · 321 阅读 · 1 评论 -
Day8 Java学习之初识方法
注意:定义一个方法必须在其他方法的外面,类的里面 , 方法名(); 注意:上述调用是在同一个类中调用的,在不同类中调用时:对象名.方法名();、且方法必须先创建才可以使用!!! 运行结果: 解析: 注意:参数列表中的参数的数据类型与参数名必须成对出现缺一不可做题之前先分析:代码如下:...原创 2022-07-06 17:13:47 · 102 阅读 · 0 评论 -
Day1 Java学习之循环语句
for(初始化语句;条件判断语句;条件控制语句){ 循环体语句;}执行流程1、执行初始化语句2、执行条件判断语句,看其结果是true还是false 如果是false,循环结束 如果是true,继续执行3、执行循环体语句4、执行条件控制语句5、回到2继续执行案例:求和需求:求1-5之间的数据和,并把求和结果在控制台输出分析:原创 2022-06-27 19:23:14 · 572 阅读 · 4 评论 -
Day9 Java学习之方法的使用体会
注意:返回值按照自己的需求定义即可,且方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序报错原创 2022-07-07 19:03:46 · 116 阅读 · 0 评论 -
Day3 Java学习之循环练习体会及优化思想
编程实现在控制台打印出1~100内能被4整除的数,并求和输出结果!! 这是一般未优化的代码如下:为优化的代码可能存在重复无用循环,及优化后可省略的 if判断语句减少程序运行时间 这是优化后的代码: 代码优化的后:很明显优化后的代码把一般代码少了很多次循环且省略的判断语句,可以高了程序执行速度,使代码原创 2022-06-29 17:21:07 · 245 阅读 · 4 评论 -
Day11 Java学习之十大排序算法:冒泡排序与选择排序
稳定性:如果数据a原本在数据b前面,而a=b时,排序之后a仍然在b的前面。不稳定性:如果数据a原本在数据b的前面,而a=b时,排序之后a可能出现在b的后面。内排序:所有排序操作都在内存中完成。 外排序:通常是由于数据太大,不能同时存放在内存中,根据排序过程的需要而在外存与内存之间 数据传输才能进行。时间复杂度:时间频度,一个算法执行所耗费的时间。算法中通常用数据比较次数与数据移动次数 进行衡量。空间复杂度:算法执行时所需要的内存大小。数字描述有的抽象咋们直接上图: 需求:有一个数组a[]{ 22,66,88原创 2022-07-10 23:30:36 · 288 阅读 · 0 评论 -
Day15 Java学习之面向对象基础
解析类是java编程中的基本单元;把具有相同行为和属性的事物归为一类;类是被抽象出来解决问题的工具//关键字赋予了特殊意义的英文单词作用域修饰符修饰类的关键字类名{}//例如}1、取名时候做到见名知意2、类的首字母大写3、思考类的作用域修饰符用哪个?4、该类抽象有那些属性和那些方法?全局变量定义在类体中,方法外的变量叫做成员变量也叫全局变量。局部变量定义在方法体内的变量;还有语句体里的变量,只做用于语句体内this代表所在类的对象引用;解析举例。...原创 2022-07-18 16:57:55 · 110 阅读 · 1 评论 -
Day22_7 Java学习之对象数组
一、先定义,再开辟数组空间类名称对象数组名[]=null;对象数组名=new类名称[长度];二、定义并开辟数组空间类名称对象数组名[]=new类名称[长度];特别注意在声明对象数组后,必须对每个数组成员进行实例化之后才能直接使用,否则报空指针异常!Studentstudent[]={newStudent("小王",20),newStudent("小明",20),newStudent("小红",20)};...原创 2022-07-22 17:03:53 · 9960 阅读 · 4 评论