
JavaSE
Easonnzz
你吃饭了吗?
展开
-
JavaSE(二十六)——多线程之模拟龟兔赛跑
文章目录1. 案例说明2. 代码实现及运行结果1. 案例说明(1)首先设定赛道距离,要离终点越来越近(2)判断比赛是否结束(3)打印出胜利者(4)龟兔赛跑开始(5)故事中是乌龟赢,兔子需要睡觉,所有需要在代码中模拟兔子睡觉(6)最后乌龟赢得了比赛2. 代码实现及运行结果(1)不模拟兔子睡觉,结果胜利者是兔子package Thread;public class Race implements Runnable { //胜利者 private static Strin原创 2020-10-06 12:48:40 · 380 阅读 · 0 评论 -
JavaSE(二十五)——String与StringBuffer、StringBuilder的区别、创建对象的几种方法、Http和Https的区别
文章目录1、String、StringBuffer、StringBuilder的区别1、String、StringBuffer、StringBuilder的区别(1)String是长度不可变的字符序列(2)StringBuffer和StringBuilder是长度可变的字符序列容器(3)单线程使用StringBuiler,多线程使用StringBuffer(4)底层实现上StringBuffer比StringBuilder多了Synchronized同步锁,所以StringBuffer较安全.原创 2020-09-15 22:28:48 · 481 阅读 · 0 评论 -
JavaSE(二十四)——冒泡排序、选择排序、直接插入排序以及二分查找
文章目录1. 冒泡排序2. 选择排序3. 直接插入排序4. 二分查找1. 冒泡排序2. 选择排序3. 直接插入排序4. 二分查找原创 2020-08-22 20:56:56 · 393 阅读 · 0 评论 -
JavaSE(二十三)——JVM
文章目录关于JVM相关的面试题1. JVM 回收算法和回收器,CMS 采用哪种回收算法,怎么解决内存碎片问题?2. JVM类加载过程3. JVM 分区4. Java虚拟机的作用关于JVM相关的面试题1. JVM 回收算法和回收器,CMS 采用哪种回收算法,怎么解决内存碎片问题?标记-清除算法将垃圾回收分为两个阶段:标记阶段和清除阶段。在标记阶段首先通过根节点,标记所有从根节点开始的对象,未被标记的对象就是未被引用的垃圾对象。然后,在清除阶段,清除所有未被标记的对象。复制算法解决内存碎片问题,将现有的原创 2020-08-22 18:39:56 · 318 阅读 · 0 评论 -
JavaSE(二十二)——TCP协议的三次握手
文章目录1. TCP协议2. TCP的三次握手3. 为什么一定是三次握手?1. TCP协议TCP协议:传输控制协议,是可靠连接,类似于打电话,只有等待对方接通的时候才可以交流,也就是确认了对方可以传信息,才会发送信息。UDP协议:用户数据报协议,是不可靠的,就像发短信,发出去就完事了,对方是否接收到就与自己无关。2. TCP的三次握手初始状态:客户端处于 closed(关闭)状态,服务器处于 listen(监听) 状态。第一次握手:客户端发送请求报文将 SYN = 1同步序列号和初始化序列号s原创 2020-07-27 17:58:38 · 479 阅读 · 0 评论 -
JavaSE(二十一)——栈和队列、栈和堆
文章目录1. 栈和队列1.1 定义1.2 区别1.3 常见笔试题2. 栈和堆2.1 栈内存2.2 堆内存2.3 区别1. 栈和队列1.1 定义栈(Stack):是限定能在表的一端进行插入和删除操作的线性表队列(Queue):是限定只能在表的一端进行插入和另一端删除操作的线性表1.2 区别栈和队列的区别:(1)栈的插入和删除操作都是在一端进行的,而队列的操作却是在两端进行的;(2)栈是先进后出,队列是先进先出;(3)栈只允许在表尾一端进行插入和删除,队列只允许在表尾一端进行插入,在表头一端进原创 2020-07-14 11:11:03 · 327 阅读 · 0 评论 -
JavaSE(二十)——面向对象的概念及三个基本特征
1. 封装定义: 封装是将客观事物封装成抽象类, 并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。举例:public class Person{ private String name; private int age; private String sex; public String getName(){ return name; } public void setName(String name){原创 2020-06-30 17:21:52 · 562 阅读 · 0 评论 -
JavaSE(十九)——equals() 和 == 的区别
文章目录1. 不同数据类型中 == 的含义2. equals()方法3. 举例验证1. 不同数据类型中 == 的含义基本数据类型(原始数据类型) :byte,short,char,int,long,float,double,boolean。在这些数据类型中,当他们用(==)进行比较的时候,比较的是他们的值是否相等。复合数据类型(类):当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址(确切的说,是堆内存地址)是否相同。注:对于第二种类型,除非是同一个new出来的对象,他们的比较后的结果原创 2020-06-28 17:58:43 · 373 阅读 · 0 评论 -
JavaSE(一)——HelloWorld
1.HelloWorld在文本中编译public class HelloWorld{public static void main (String args[]){System.out.println(“Hello World !”);}}没有安装集成开发工具下,在cmd中操作2.变量基本格式:变量类型 变量名 = 变量值代表整数的类型 byte short ...原创 2019-10-10 17:35:33 · 310 阅读 · 0 评论 -
JavaSE(二)——循环语句
1. Scanner工具类java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。创建 Scanner 对象的基本语法以从键盘输入学号、姓名、余额为例2. if…else条件语句基本语法if(布尔表达式){//如果布尔表达式的值为true}else{//如果布尔表达式的值为false}以学生成绩为例3. ...原创 2019-10-11 20:35:49 · 419 阅读 · 0 评论 -
JavaSE(三)——数组及继承
1. 数组定义1.1 一维数组定义:数组是用来存储固定大小的同类型元素,且下标从0开始。格式1:元素类型[ ] 数组名 = new 元素类型 [元素个数]格式2:元素类型[ ] 数组名 = {元素,元素,元素…}注意:Java 不允许在声明数组中的方括号内指定数组元素个数。1.1.1 实例1.1.2 冒泡排序相邻的两个元素进行比较,如果符合条件,就交换位置,第一圈下来最...原创 2019-10-13 22:09:06 · 632 阅读 · 0 评论 -
JavaSE(四)——方法重写、多态、接口
1. 方法重写1.1 定义子类对父类功能的实现不满意,我想要根据自己的差异性,来进行实现,那子类就可以进行方法重写,去覆盖掉父类中的方法,在实际调用中,以子类重写的为准。1.2 重写的注意事项父类私有的方法子类不能重写,因为私有的方法,子类都不能继承,何谈重写。子类在重写父类方法时,子类方法前面的权限修饰符,不能比父类的低,要比父类的高,或一样。权限修饰符:public>pr...原创 2019-10-16 19:19:49 · 344 阅读 · 0 评论 -
JavaSE(五)——修饰符、内部类、匿名内部类
1. 方法参数及返回值类型特点:(1)当一个方法的形参或者返回值类型要一个类类型时,就传一个该类的对象。(2)当一个方法的形参或者返回值类型要一个抽象类类型时,就传一个继承该抽象类的子类对象。(3)当一个方法的形参或者返回值类型要一个接口类型时,就传一个实现该接口的子类对象。实例2. 修饰符总结2.1 修饰类(1)public :默认修饰符,一个java的源文件中只能有一个被p...原创 2019-10-22 11:35:51 · 435 阅读 · 0 评论 -
JavaSE(六)——Object类、克隆方法
1. Object类1.1 定义Object类是顶层父类,所有的类都直接或间接继承该类。1.2 常用方法(1)hashCode(): 返回此对象的哈希码值,不是对象的实际地址值,可理解为逻辑地址值。不同对象的哈希码值不同,同一对象的哈希码值相同 。(2)getClass():返回此对象的运行时类。将JVM为这个文件创建的对象获取出来。(3)toString(): 返回此对象的字符串表示...原创 2019-10-22 22:15:38 · 334 阅读 · 0 评论 -
JavaSE(七)——Scanner类、String类
1. Scanner类用于接收键盘输入数据。hasNextXxx() 判断下一个是否是某种类型的元素,其中Xxx可以是Int,Double等;如果需要判断是否包含下一个字符串,则可省略Xxx.nextXxx() 获取下一个输入项。Xxx的含义和上个方法中的Xxx相同。其中nextInt()表示获取一个int类型的值;nextLine()表示获取一个String类型的值。...原创 2019-10-28 16:49:34 · 355 阅读 · 0 评论 -
JavaSE(八)——StringBuffer类、Arrays类、数组排序
1.StringBuffer类1.1 定义StringBuffer:可变的字符序列,效率低,用于在多线程操作字符串缓冲区下操作大量数据。1.2 功能添加功能(1)append(String str):可以把任意类型数据添加到字符串缓存区里,并返回字符串缓冲区本身。(2)insert(int offset,String str):在指定位置把任意类型的数据插入到字符串缓冲区里面,...原创 2019-10-30 22:24:57 · 443 阅读 · 0 评论 -
JavaSE(九)——正则表达式、Date类、集合、泛型
1. 正则表达式正确规则的表达式,用来定义一些规则,对数据进行校验。原创 2019-11-15 21:10:19 · 431 阅读 · 0 评论 -
JavaSE(十)——set和map集合、异常、File类
1.set集合HashSet:底层数据结构是哈希表(数组+链表 JDK1.8 之后数组+链表+二叉树),元素唯一 、无序 ,元素的唯一性,是靠元素重写hashCode()和equals()方法来保证的。如果元素不重写,就无法保证。LinkedHashSet 元素有序且唯一 数据结构是链表和哈希表,链表保证了有效,哈希表保证唯一。TreeSet 底层数据结构是二叉树,元素唯一,且能对元素进行...原创 2019-11-15 22:37:07 · 316 阅读 · 1 评论 -
JavaSE(十一)——多线程
1. 进程和线程1.1 串行和并行串行:指多个任务时,各个任务按顺序执行,完成一个之后才能进行下一个。并行:指多个任务可以同时执行。异步是多个任务并行的前提。1.2 并行和并发并行:多个cpu实例或多台机器同时执行一段处理逻辑,是真正的同时。并发:通过cpu调度算法,让用户看上去同时执行,实际上从cpu操作层面不是真正的同时。1.3 进程和线程进程:具有独立的执行环境和一套完整的...原创 2019-11-30 20:31:15 · 430 阅读 · 0 评论 -
JavaSE(十二)——AWT
1.AWT1.1 概述AWT为抽象窗口工具包,java.awt包提供了基本的java程序的GUI设计工具。主要包括组件、容器、布局管理器。组件(Conponent)是图形用户界面最基本的部分,可以以图形化的方式显示在屏幕上,并能与用户进行交互的对象,组件不能独立地显示出来,必须将其放在一定的容器中才可以显示。容器(Container)也是一个类,容器本身也是一个组件,具有组件的所有性质,...原创 2019-12-03 10:13:43 · 342 阅读 · 0 评论 -
JavaSE(十三)——Swing
1. 概述Swing 是一个为Java设计的GUI工具包,包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。提供许多比AWT更好的屏幕显示元素,优点是可以在所有平台上采用统一的行为。2. JFrame实例:运行结果:3. 弹窗JDialog,用来被弹出,默认就有关闭事件。实例:运行结果:4. 标签...原创 2019-12-03 21:16:50 · 477 阅读 · 0 评论 -
JavaSE(十四)——网络编程(IP地址、端口号、TCP、UDP)
1. 概述网络编程:使用套接字(socket)来达到进程间通信,现在一般称为TCP/IP编程。套接字(socket):网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字。套接字原理机制:通信的两端都有Socket。网络通信其实就是Socket间的通信。数据在两个Socket间通过IO传输。网络编程三要素:①IP地址:InetAddress:...原创 2019-12-04 17:08:17 · 594 阅读 · 0 评论 -
JavaSE(十五)——注解
1. 概述不是程序本身,但可以对程序作出解释,可以被其他程序(比如:编译器)读取。格式:@注释名(参数值)使用范围:可以附加在package、class、method、field等上面。2. 内置注解@Override: 只适用于修饰方法,表示一个方法声明打算重写超类中另一个方法声明。@Deprecated: 用于修饰方法、属性、类,表示不鼓励使用这样的元素。@Suppress...原创 2019-12-09 14:14:07 · 844 阅读 · 0 评论 -
JavaSE(十六)——反射
1.原创 2019-12-10 11:49:27 · 337 阅读 · 0 评论 -
JavaSE(十七)——IO流之字节流
1. 概述IO流用来处理设备之间的数据传输, Java对数据的操作是通过流的方式。IO流的分类:(1): 按照流向进行划分输入流输出流(2): 按照操作的数据类型进行划分字节流 :字节输入流 InputStream (读) 字节输出流 OutputStream (写)字符流 :字符输入流 Reader(读) 字符输出流 Writer (写)注:字节流可以读写任何类型的...原创 2019-12-10 21:16:37 · 297 阅读 · 0 评论 -
JavaSE(十八)——IO流之字符流
1. 概述字符流只能读写文本文件Reader :字符输入流的父类 InputStreamReader 是字节流通向字符流的桥梁Writer :字符输出流的父类 OutputStreamWriter 是字符流通向字节流的桥梁字符流出现的原因:由于字节流操作中文不是特别方便,所以java就提供了字符流。编码: 就是把字符串转换成字节数组 =>字符流 = 字节流 + ...原创 2019-12-11 11:39:26 · 283 阅读 · 0 评论