- 博客(27)
- 收藏
- 关注
原创 java多线程
1,概念解析进程是系统分配资源的单位。线程是cup调度和执行的单位,各个线程之间共享进程的内存空间。在程序运行时,即使没有自己创建线程,后台也会有多个线程,比如主线程、gc线程。线程会带来额外的开销,如cpu调度时间,并发控制开销。2,线程的创建<1> 继承Thread类。实现步骤:①自定义线程类继承Thread类。②重写run()方法。③创建自定义类,调用start()方法启动线程。package Thread;//创建线程的方法1 继承Thread类pu
2021-12-11 14:09:45 368 1
原创 红黑树详解
1,红黑树特点每一个结点都有颜色,要么红色,要么黑色。根结点必须是黑色的。红色结点的子结点必须是黑色的。任何一个结点,到它所有叶子结点,经过相同个数的黑色结点。(红黑树的平衡含义,左右高度相差一倍以内就可以,但搜索性能仍然是log2(n))。红黑树的高度最高不超过2log2(n+1)。null叶子节点是黑结点。2,红黑树插入操作如何调整使得满足规则?新插入的结点颜色为红色,先插入,再判断属于哪种类型。先左旋相当于把新插入的结点改变了,再右旋,右旋后变色新插入的结点颜色不变,改变其他两个
2021-11-21 15:01:12 1467
原创 HTTP详解
1, 什么是HTTP协议?HTTP客户端和服务端之间进行数据通信的一种协议。协议规定了客户端应该按照什么格式给服务端发送请求,服务端应该以什么样的格式返回响应结果。HTTP协议规定只能由客户端主动发起请求,服务端接收请求处理后返回结果。HTTP是应用层的协议,TCP是传输层,HTTP是要基于TCP连接基础上的。TCP就是单纯建立连接,不涉及任何我们需要的请求数据;而HTTP是用来收发数据的,即实际应用上。2,HTTP协议的特点?灵活。HTTP允许传输任意类型的数据对象,正在传输的类型由co
2021-11-18 21:34:01 893
原创 abstract、static、构造方法
1,abstract抽象方法:用abstract修饰,只有方法名、返回值类型、形参,没有方法体,不能和static、private、final、native并列修饰一个方法。抽象类中可以没有抽象方法,抽象类不能实例化对象(使用new关键字,由子类创建对象),多用于继承和实现(多态)。有抽象方法的类一定是抽象类。抽象类中可以有构造方法,帮助子类实例化,但构造方法不能用abstract修饰。①:子类不能继承父类的构造方法,子类中所有的构造方法都会默认访问父类中的无参构造方法,原因:1,子类会继承父
2021-10-12 19:55:46 913
原创 2021.0827 快手摸底(四)web
1,MySQl三层结构?存储结构?MySQL三层结构<1>连接层:为请求做连接处理,授权认证、安全。<2>SQL层:大多数MySQL的核心功能都在这一层,包括查询解析、分析、优化、缓存、内置函数,所有跨域存储引擎的功能都在这一层实现。<3>存储层:负责MySQL中数据的存储和提取。2,三层架构和MVC?三层架构<1>表示层(web):用户看到的界面,用户可以界面上的组件和服务器进行交互。<2>业务逻辑层Service):处理
2021-09-10 15:58:23 178
原创 2021.0827 快手摸底(三)二叉树
你所了解的二叉树结构?节点的度:节点拥有子树的数目叫做节点的度,叶子节点的度为0树的度:树内各结点的度的最大值。<1>满二叉树(完美二叉树)一个二叉树,每一层的结点树都达到最大值。也就是说,最后一层结点外,每一层上的任何结点都有两个子节点。<2>完全二叉树只有最下面两层节点的度小于2,并且最下面一层的结点都集中在该层的左边的若干位置。性质:对树中的结点从上到下、从左至右编号,如果编号为i的结点与满二叉树中编号为i的结点在二叉树中的位置相同,则该棵二叉树为完全二叉树
2021-09-10 15:58:00 230
原创 2021.0827 快手摸底(二)计网
TCP三次握手、四次挥手?每次是哪端发送请求?为什么要四次挥手?三次不行吗?四次挥手中关键的是哪个?第四次挥手发送失败怎么办?重新发送的间隔时间是多久?1,基础知识TCP协议是一种面向连接、可靠的、基于字节流的传输层协议。面向连接是指在传输之前必须先建立连接,传输完成后要释放连接。TCP端口号TCP连接需要四个要素确定唯一连接:(源IP,源端口号)+(目的IP、目的端口号)在TCP首部预留了2个16位(两个字节)给端口号,而IP地址由上一层的IP协议负责传输。源端口号和目的端口号各占16位,
2021-09-10 15:57:06 472
原创 2021.0827 快手摸底(一)JVM
简历面 高频基础----java后端实习生,效率应用Team,简历内推。1,JDK、JRE、JVM介绍?JDK(Java Development Kit) Java开发工具包1,JDK是java语言的软件开发工具包(SDK),是整个java开发的核心,它包括java运行环境JRE(JVM+类库)+java工具。2,JDK安装目录下有一个jre的目录,里面有两个目录bin和lib,在这里bin可以认为是JVM,lib可以认为是JVM运行所需要的类库,JVM+类库合起来称为JRE。JRE(J
2021-09-10 15:56:05 247
原创 Java之经典排序算法(一)
一,冒泡排序不稳定的排序算法:快希选堆1,算法思路:比较相邻元素,如果第一个比第二个大,则交换这两个元素。从第一个元素开始依次往后比较相邻两个元素,直到最后一个比较完,这样最后一个元素就是最大的元素。再次从第一个元素开始依次往后比较相邻两个元素,最后一个元素不参与,直到倒数第二个元素比较完,这样倒数第二个元素就是第二大元素。重复上述步骤,直到最后只剩下第一个元素和第二个元素可以比较并比较完。2,代码实现:package com.yzd0507.Order;//测试几种经典的排序算法
2021-05-10 12:45:19 198
原创 压缩算法之哈夫曼树(基于Java实现)
一,Huffman树的简介1,定义给定n个带权值的节点,将这n个节点作为叶子节点构建一棵二叉树,若该树的带权路径最小,则称该树为最优二叉树,也叫Huffman树。2,生成方法<1>,在节点中取权值最小的两个节点为叶节点,生成一棵二叉树,该二叉树的父节点权值为两个叶节点的权值之和。<2>,将取出的两个节点删除,加入新生成的父节点,重新回到步骤1,直到只剩下1个节点不能再生成树为止。举个例子,现在我们有一下几个节点,它们的权值分别如下所示:带权路径长度WPL(weight
2021-04-26 12:05:04 544
原创 Java之二叉排序树
在上一篇博客中(Java之二叉树的手动构建与遍历)我们了解了二叉树的基本知识,知道二叉树可以用来存储数据,并且有多种遍历方式,那么我们联想到如果我们有一组数据需要排序,能否利用二叉树实现呢?答案是当然可以!下面就来一步步实现!一,节点属性规定节点根据连接关系有四个属性:1,父节点2,左子节点3,右子节点4,节点值 class Node{ Node paren; Node left; Node right; int value; //构造方法 实例化节点时要传参
2021-04-17 15:33:52 218 1
原创 Java之二叉树的手动构建与遍历
一,树的基本知识树是一种数据结构,它是由n(n>=1)个有限结点组成的一个具有层次关系的集合,如下图所示:<1>树的基本术语:1,父节点和子节点:一个节点若干分支下的节点都称为该节点的子节点,该节点称为子节点的父节点。如上图中B、C是A的子节点,A是B、C的父节点。2,兄弟节点:同一父节点的所有子节点互为兄弟节点。如上图中B、C互为兄弟节点。3,节点的度:该节点拥有子树的数目。上图中A的度为2,B的度为1,C的度为3.4,叶子节点:没有子树的节点即度为0的节点。上图中D、E、
2021-04-15 12:29:43 410
原创 Java之通信画板
本次我们主要实现了画板之间的通信,客户端画板可以转递一条直线给服务端画板,服务端画板也可以传递一条直线给客户端画板,两端直线显示在相同位置上,效果如下:涉及到的知识点主要有以下两点:1,Java Socket通信。2,Int数据和byte数据的转换。一,Socket通信1,TCP/IP协议TCP是一种面向连接的、可靠的、基于字节流的传输层协议,IP是互联网协议,Java Socket就是基于TCP/IP的网络通信。我们在进行连接时要知道主机地址和端口号,主机地址就类似于知道机器的位置,端口号
2021-03-22 11:05:07 435 1
原创 Java之简易版飞机大战
本篇博客主要利用java实现了一个简易版的飞机大战,适合初学者练手,所涉及到的知识主要有以下几点:1,面向对象。飞机大战的功能是针对每个英雄机、子弹和敌机对象实现的。2,数组。由于敌机和子弹对象有多个,创建一个List数组用来存储相应对象,之后针对数组中的对象进行操作。3,图片。站在用户的角度,我们看到的是一张张飞机、子弹的图片,对对象的操作要和相应的图片联系起来。4,线程。一,游戏规则:当英雄机发射的子弹击中敌机,敌机产生爆炸效果并消失,每击中一架敌机分数+10。二,游戏效果:三,游戏制
2021-03-02 13:59:24 2766 10
原创 Java之生产者-消费者模式
一,生产者-消费者模式所谓的生产者-消费者模式是指生产者不断生成产品,消费者不断消耗产品。但是产品数量有一定的限制,当生成者生产的产品超过了限额就必须停止生产,直到数量小于限额才可以继续生产;当产品数量为零时,消费者不能消费,直到有产品才可以消费。二,synchronized关键字、wait()方法、notify()方法1,synchronized关键字synchronized是java中的一个关键字,是一种同步锁,当有多个线程试图访问同一个代码块时,为了避免冲突,使用synchronized修饰该
2021-01-30 09:16:52 378 6
原创 Java之小球碰撞反弹
本次我们主要实现了三个功能:1,小球碰壁反弹、小球相互碰撞反弹。2,使用缓冲绘图解决闪屏问题。3,增加暂停按钮,实现界面动、停控制。一,创建一个类ShowUI实现窗体界面package com.yzd0126.BallsRebound;import java.awt.Color;import java.awt.FlowLayout;import java.awt.Graphics;import java.util.ArrayList;import java.util.List;im
2021-01-27 16:22:14 5130
原创 线程+动态数组=运动的小球
一,线程之前我们执行的任务都是顺序执行,下一个任务要等上一个任务执行完之后才可以执行,一旦任务多了起来,那么等待的时间将会很久,于是我们考虑能否让多个任务同时执行,不用等待上个任务结束就能开启下一个任务?java提供了并发机制,而将并发完成的每一件事称为线程(Thread)。以我们的电脑为例,我们可以同时听歌、聊天、下载文件,这种并发机制大大提高了我们的用户体验。二,队列...
2021-01-22 11:35:52 246 4
原创 Java第n次入门之颜色选择器
之前我们在画板中切换颜色都是将按钮的背景颜色设为固定颜色,但是Java提供了一个颜色选择器,可以灵活地选择我们需要的颜色。一,JColorChooserJColorChooser——颜色选择器,提供一个用于用户操作和颜色选择的控制器对话框,常用方法为:public static Color showDialog(Component component, String title,Color initalColor)在component(父组件)中部显示一个颜色选择面板,标题为title,初始颜色为
2020-12-31 16:04:54 483
原创 Java第n次入门之递归山脉的实现
一,递归山脉的要求给定左右两个点X1(Lx,Ly),X2(Rx,Ry),一个y轴动态范围-range~range,在该动态范围内随机选取一个数num,选取一个中点M,中点的横坐标为(Lx+Rx)/2,纵坐标为(Ly+Ry)/2+num,连接左端点与中点、中点与右端点。如此反复,再分别取左端点X1和中点M的中点、中点M和右端点X2的中点,range范围按一定比例缩小,连接两点形成递归山脉。二,创新点之前我们调用递归的时候每循环一次都调用一次,后面的结果覆盖前面的结果,形成最后的效果,这造成了之前的画的
2020-12-30 16:22:39 194 3
原创 Java第n次入门之自定义数据结构
本次我们要实现的目标时自定义一种数据结构,可以帮助我们管理下标、增删改查、自动扩容。一,数据类型基础知识java中有两种数据类型:基本数据类型和引用数据类型。
2020-12-13 11:24:42 1025 2
原创 Java第n次入门之画板重绘
一,为什么要重绘?在上一篇博客中,我们实现了画板的功能,但是我们发现如果将画板窗体从屏幕中移除或者改变画板窗体,会发现原来在画板上画的图形消失了,这就降低了用户体验,那么出现这种现象的原因是什么呢?二,为什么会出现图形消失的原因?首先我们要明白的是当我们将画板窗体移除或者改变画板窗体大小的时候都是画板的Frame框架在不断调用paint()方法。我们写的代码中有给Frame框架增加组件的部分,而这些组件包括框架就是通过paint方法将这些组件“画”到了我们的电脑屏幕上才让我们看到了这些组件。那么当我们
2020-12-11 20:34:52 305
原创 画板重绘完整版代码
package com.yzd1209.DrawRepaint;import java.awt.Color;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.Graphics;import javax.swing.JButton;import javax.swing.JFrame;public class Board {public void ShowDraw() { DrawFrame jf =
2020-12-11 20:24:27 303
原创 Java第n次入门之画板的实现
本次我们主要实现了一个画板的工具,具体功能有画固定图形(直线、矩形等java自带画图方法)、曲线、立体图、分形图、概率画图、递归画图。下面我们逐步介绍。一,窗体及按钮的可视化实现java提供了一个窗体类JFrame,按钮类JButton,使用这些类创建对象可以快速地实现窗体和按钮的可视化 JFrame jf = new JFrame("画板");//创建窗体对象jf //窗体初始化属性 jf.setSize(800,600);//窗体大小,横x纵y jf.setLocationRelativ
2020-11-30 11:22:16 516 4
原创 画板完整版代码
package com.yzd1129.DrawRecursion;import java.awt.Color;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.Graphics;import javax.swing.JButton;import javax.swing.JFrame;public class Board {public void ShowDraw() { JFrame jf = n
2020-11-30 11:17:50 682
原创 Java第n次入门之接口的使用方法
一,接口概念官方解释:Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。在我看来,接口就是一个标准,可以看作一个抽象类,其中可以定义属性和方法...
2020-11-15 19:33:41 188
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人