Java
文章平均质量分 85
Salute-Y
这个作者很懒,什么都没留下…
展开
-
Java~数据结构(七)~Map和Set的使用(TreeMap\TreeSet的使用、Map和Set的基础知识、二叉搜索树的常见操作及实现..)
若根节点不为空,如果根节点key==查找key,返回true。如果根节点key>查找key,则在其左子树寻找,如果根节点key小于查找key,则在其右子树寻找 否则返回false。2)如果不是空树,按照查找逻辑确定插入位置,插入新节点。:假设待删除节点为cur,其双亲节点为parent.若左子树不为空,则左子树上所有节点的值都小于根节点。若右子树不为空,则右子树上所有节点的值都小于根节点。1)如果是空树,即根==null,直接插入。),根据关键字搜索到的内容就是值(我们查找时搜索的数据就是关键字(原创 2022-10-09 20:42:12 · 661 阅读 · 1 评论 -
Java~数据结构(六)~Java中对象的比较(基本类型和引用类型分别是如何比较的、Comparator/Comparable接口、hashCode和equals方法等)
优先级队列要求:插入的元素不能是null或者元素之间必须能够比较。如果在优先级队列中插入自定义对象,必须是可以比较的对象。为什么?因为优先级队列底层是用堆实现的,向堆中插入元素,必然是需要上下调整的,如果插入的元素无法比较。会抛出异常。很多场景需要明确要求两个对象是可以比较的。如果是两个基本类型,可以直接进行> < 和==比较如果是两个引用类型,不可以直接进行> < 比较,但是可以进行==比较。(默认调用Object中的equals方法)对于自定义类型。原创 2022-10-07 16:49:11 · 595 阅读 · 0 评论 -
Java~数据结构(五)~优先级队列(堆的基本概念、操作及实现&优先级队列、PriorityQueue的使用、TopK问题、堆排序)
堆的删除与插入操作相反,插入是将元素从下往上调整,而删除是将元素从上往下调整。创建一个数组,初始化堆,然后调整堆中的数据,不断向上或者向下,最后调整成堆。2.按照优先顺序,将新元素与其父节点比较,根据大小进行向上或者向下调整。这只是一种,topk问题是在一组数据中求前k个最小元素或者前k个最大元素。2.比较左右节点的元素,将小的元素上调(向上或向下调整)3.不断进行步骤2,知道不需要调整或者调整到堆底。思路:将所有元素放入优先级队列,返回前k个。堆中有两个基本操作:向上调整和向下调整。原创 2022-10-06 17:24:33 · 782 阅读 · 0 评论 -
Java~数据结构(四)~二叉树(什么是树&树一些概念&二叉树&二叉树的基本操作和前中后遍历)
树的基础知识二叉树两种特殊的二叉树如何储存一棵二叉树二叉树的基本操作二叉树的遍历树的基础知识什么是树?树是一种数据结构。由n个节点(n>=0)个有限节点组成一个具有层次关系的集合。树是递归定义的。原创 2022-10-05 21:37:03 · 421 阅读 · 0 评论 -
Java~数据结构(三)~栈和队列(Stack\Queue\Deque的常用方法和模拟实现一个栈和队列等)
【代码】Java~数据结构(三)~栈和队列(Stack\Queue\Deque的常用方法和模拟实现一个栈和队列等)原创 2022-10-04 22:22:11 · 1524 阅读 · 2 评论 -
Java~数据结构(二)~List集合(ArrayList、LinkedList详细介绍、常用的方法有哪些)
其中Collection接口有三个常用的子接口:List(列表)、Set(集)、Queue(队列)。它继承于AbstractList,实现了List,RandomAccess,Cloneable,Serializaable四个接口。它继承了AbstractSequentialList,实现了List,Deque,Cloneable,Serializable接口。LinkedList用双向链表来实现,每一个节点都有指向前后节点的引用。ArrayList是Java集合框架中最常使用的一个类,但是。原创 2022-10-04 15:48:59 · 645 阅读 · 0 评论 -
Java~数据结构(一)~集合框架学习和背后的数据结构
Set集合是一组无序不可重复的集合。包含三个常用的子类:HashSet、TreeSet、LinkedHashSet。List集合中的元素排列有序,并且可以重复。1.HashMap了解不,介绍一下,如果一个对象为Key时,hashCode和equals方法的用法要注意什么。Java集合框架又称为Java Collection Framework.可以认为是容器。本文主要是了解Java集合框架。4.ArrayList 和LinkedList 的区别是什么。2.HashMap和HashSet的区别是什么?原创 2022-10-02 19:12:53 · 861 阅读 · 0 评论 -
Java~网络原理~TCP协议与UDP协议详解、TCP保证可靠性传输的措施(确认应答、握手挥手、滑动窗口、流量控制、拥塞控制)及如何提高网络利用率?
方法一:标准既定的端口号方法二:时序分配法TCP为了确保可靠性传输,采取了很多机制,如确认校验和、确认序列号、确认应答机制、数据重发、连接管理、窗口控制等发送端的数据到达目标主机时,接收端会返回一个已收到消息的通知,这个消息就是ACK()。ACK表示确定收到了消息。如果确定没有收到消息,会回复一个NACK.发送端和接收端之间的确认应答就像两个人聊天,发送端对接收端说话(发送数据),接受端肯定回答表示听懂了(),否定回答表示没听懂().没有回答也是认为没听懂没有回应时,发送端会等待特定时间,然后重发数据。否定原创 2022-06-05 20:53:51 · 745 阅读 · 1 评论 -
TCP/IP~从数据链路到IP协议详解、IP协议辅助技术介绍(DNS、ARP、NAT、ICMP、IP隧道)
根据介质的使用方法的不同,可以分为共享型和非共享型多个设备共享一个通信介质(用同一根线)共享型网络是半双工通信,发送数据的同时不能接受数据,接受的同时不能发送共享型网络中介质访问方式争用方式多个设备争夺在线路中传输数据的权力,也叫(载波监听多个访问)CSMA/CD具体流程:令牌方式不共享介质,每一个数据链路中的节点直接连接交换机,让交换机转发数据。计算机和交换机接口之间形成一对一的连接。非共享型是全双工通信,发送数据的同时可以接受数据IP地址中的子网和子网掩码全局IP与私有IP私有IP的出现是为了解决原创 2022-06-02 10:44:21 · 505 阅读 · 0 评论 -
Java~网络原理~TCP/IP协议概述、具体含义、OSI分层模型、数据的传输方式(电路交换、分组交换)、数据包从发送到接收的详细流程
计算机网络,根据其模式可以分为WAN和LANWAN:广域网(Wide Area Network)LAN:局域网(Local Area work)广域网可以覆盖超远距离,局域网一般只能覆盖一栋楼,一个楼层或一个校园.TCP/IP什么是协议?协议就是计算机与计算机之间通过网络实现通信时事先达成的一种“约定”只要遵守“约定”,不同的厂商,不同的CPU和不同的操作系统之间就可以实现通信.协议分层与OSI参考模型OSI模型共7层,每个分层都接受由下一层提供的服务,并负责向上一层提供服.原创 2022-05-27 22:00:04 · 756 阅读 · 1 评论 -
Java~线程通信:等待/通知机制、等待通知的经典范式、管道输入输出流、Thread.join使用
文章目录volatile和synchronized关键字Java支持多线程来访问一个对象或对象的成员变量但由于每个线程都有一份这个对象的拷贝,所以程序执行时,每个线程看到的变量不一定是最新的(对象和成员变量虽然放在共享内存中,但是多核处理器为了加快程序的执行,允许每个线程有一份自己的拷贝)volatile关键字要求每一个线程对变量的访问和修改都在共享内存中,即每一次修改,所有的线程都可以看到过多的使用volatile会降低程序效率,偶尔一用可以synchronized以修饰方原创 2022-05-20 20:34:40 · 269 阅读 · 0 评论 -
Java~线程优先级、6种线程状态、Daemon线程、构造线程的源码分析、线程的启动、中断
文章目录线程优先级线程状态(6种)Daemon线程启动终止一个线程线程优先级线程优先级就是决定这个线程获得更多或者更少的处理器资源.操作系统采用时分的方式来调度线程给每个线程分配若干时间片,时间片用完了就切换另一个线程时间片的多少就决定了线程用到的处理器资源的多少线程优先级是线程的一个属性,通过setPriority()方法进行设置线程优先级有1-10个等级,默认等级是5,优先级越高分配到的资源越多对于频繁阻塞的线程(比如休眠、I/O操作等)一般需要更高的优先级,偏向计算的可以设置低优先级原创 2022-05-19 18:43:57 · 374 阅读 · 1 评论 -
Java~并发执行程序可能带来的问题(上下文切换、死锁、资源限制)
上下文切换无论单双核处理器都支持多线程多线程并发执行的原理是CPU给每个线程分配CPU时间片,在这个时间片内执行这个线程,时间片一般是几十毫秒(ms),由于非常短,所以我们感觉是多个线程同时执行当前任务执行一个时间片后会执行下一个任务,同时保存上一个任务的状态,当再次回到这个任务时,会继续刚才的状态继续加载,任务从保存到再加载的过程就是一次上下文切换.并发时,线程创建和上下文切换也是有时间消耗的上下文每1秒切换1000多次减少上下文切换减少上下文切换有4种方法,分别是无锁并发编程、CAS算原创 2022-05-18 18:56:04 · 553 阅读 · 0 评论 -
多线程演示并发与串行的效率、Java中的Thread类、如何中断一个线程
这里写目录标题多线程优势-代码体现Thread类及其常见方法多线程优势-代码体现多线程是用来实现并发编程,以期望来提升代码的运行效率。下面我们通过一段代码Thread类及其常见方法原创 2021-11-16 21:23:44 · 299 阅读 · 3 评论 -
Java~多线程~利用Java创建线程的几种方式、进程与线程区别(重点)
文章目录进程、线程的概念->进程->线程->Java线程与操作系统中线程的关系->用Java创建线程的几种方式->继承Thread类,重写run方法->继承Thread类,重写run方法,使用匿名内部类->实现Runnable接口,重写run方法->实现Runnable接口,重写run方法,使用匿名内部类->使用lambda表达式==进程、线程的区别(面试重点)== 欢迎阅读本篇博客~进程、线程的概念->进程我们计算机中的很多操作系统都是支原创 2021-11-14 15:52:53 · 603 阅读 · 5 评论 -
Java~IO流概述、分类、常用的流总结(FileInputStream&FileOutputStream、缓冲流、数据流、标准流、对象流)
文章目录IO流概述IO流概述什么是IO流I:inputO:output通过IO就可以完成硬盘文件的读和写硬盘中的文件加载到内存就是输入(Input)、内存将使用或者修改过的文件再返回给硬盘就是输出(Output)IO流分类?...原创 2022-05-17 21:28:03 · 600 阅读 · 0 评论 -
Java~文件路径、类加载过程、双亲委派机制
文章目录如何在类路径下获取文件的绝对路径以流的形式直接返回路径更直接:一步到位之资源绑定器的使用类加载机制双亲委派模型如何在类路径下获取文件的绝对路径public static void main(String[] args) throws Exception { //这种路径的缺点:移植性差,在IDEA中默认的当前路径是project的根 //离开了IDEA,这个路径就无效 // FileReader reader=new FileReader("src/原创 2022-05-15 22:06:03 · 209 阅读 · 0 评论 -
Java~反射机制、获取Class的三种方式、利用反射获取字段、方法、创建对象
文章目录反射机制获取Class的三种方式利用反射实例化对象Class.forName方法反射获取Field反编译Field利用反射访问类字段插入知识点:可变长参数使用反射机制来调用方法使用反射创建对象反射机制反射机制有什么用?通过Java语言中的反射机制可以操作字节码文件有点类似于黑客,可以读和修改字节码文件通过反射机制可以操作代码片段( class文件)反射机制的相关类在哪个包下?java.lang.reflect.*;反射机制相关的类有哪些?java.lang.Class原创 2022-05-15 22:02:05 · 3578 阅读 · 0 评论 -
JDBC~ResultSet、ResultSetMetaData的使用、ORM思想、任意表的任意字段查询(JDBC实现)
文章目录ORM思想ResultSet、ResultSetMetaData的使用利用JDBC实现查询操作利用JDBC实现对某表的任意字段查询利用JDBC实现对任意表的任意字段查询总结ORM思想ORM映射思想(Object relational mapping)一个数据表对应一个Java类表中的一条记录对应Java类的一个对象表中的一个字段对应java类的一个属性ResultSet、ResultSetMetaData的使用ResultSetPreparedStatement 的 execu原创 2022-05-14 16:49:58 · 673 阅读 · 0 评论 -
JDBC~Java中的JDBC概述、连接数据库的注意点、利用PreparedStatement实现增删改
文章目录JDBC概述步骤连接数据库的几种方式利用JDBC操作数据库利用JDBC实现添加(insert)利用JDBC实现删除(delete)包装相同的代码,实现修改(update)利用JDBC实现一个方法增删改JDBC概述JDBC是JAVA提供的一组API,可以用来访问不同的数据库这组接口是sun公司提供的,不同的数据库厂商会针对这组接口提供不同的实现,这些实现就是每个数据库的驱动步骤必须有的对象:Connection、Statement中间执行SQL语句使用完成后关闭资源连接数据库原创 2022-05-14 13:48:14 · 409 阅读 · 0 评论 -
JavaWeb~http请求常见方法/报头header字段Host、User-Agent、Cookie、Referer、Content-type/Http响应解析及状态码
文章目录http请求方法GET请求POST请求认识请求报头(header)http请求方法http协议中,最常用的就是get和post方法GET请求方法GET请求POST请求POST请求方法最常见的情况就是登录。post请求的特点:1.首行的第一部分为POST2.URL 的querystring 一般为空,但是,也完全可以加上querystring3.header 部分有若干个键值对~4.body部分一般不为空,但是,如果,body为空,也完全可以。POST请求中body正文部分原创 2022-03-12 21:07:37 · 4405 阅读 · 10 评论 -
Java数据结构二叉树的前、中、后序遍历和层序遍历(递归和非递归实现)
文章目录二叉树的基本操作-遍历(一)前序遍历(preOrderTraversal)递归实现非递归实现(二)中序遍历递归实现非递归实现(三)后序遍历递归实现非递归实现(四)层序遍历二叉树的基本操作-遍历所谓的遍历(Traversal)是指沿着某条搜索路线,依次对树中每个节点均做一次且仅作一次的访问。访问节点后需要进行的操作看具体的问题(比如打印节点内容,数据计算等)。遍历二叉树是其他很多方法的基础,很重要。二叉树的遍历就前中后和层序遍历四种。前三种有着固定的遍历顺序。(一)前序遍历(preOrde原创 2021-12-20 21:24:06 · 991 阅读 · 1 评论 -
Java实现弹球小游戏~基于GUI图形界面编程和Timer定时器实现~AWT5
原创 2021-12-10 14:15:34 · 3288 阅读 · 0 评论 -
Java~GUI图形界面编程~AWT4
AWT绘图Graphics类中常用方法绘图很多程序如各种游戏都需要在窗口中绘制各种图形,在开发一些项目的时候有时也需在客户端向用户展示各种图形、图表等,比如图形验证码、统计图等,这都需要利用AWT的绘图功能。程序中的绘图和现实中绘图一样,也需要画布,画笔,颜料等等。AWT中提供了Canvas类充当画布,提供了Graphics类充当画笔,通过调用Graphics对象的setColor()方法可以给画笔设置颜色。Graphics类中常用方法方法功能setColor(Color原创 2021-12-09 22:08:45 · 293 阅读 · 0 评论 -
Java~GUI图形界面编程~AWT3
AWTGUI事件处理机制演示1常见事件低级高级GUI事件处理机制前面介绍了如何放置和布局组件,从而产生了丰富的界面,但这些界面对用户的操作没有任何深入的响应。如点击右上角的退出,界面没有任何反应等。在AWT编程中,所有用户的操作都必须有一套机制来完成。即GUI事件处理机制,而Frame和组件本身没有事件处理能力。定义:当在某个组件上发生某个操作的时候,会自动的触发某段代码的执行。基本概念:事件源(Event Source):操作发生的场所,通常是某个组件或窗口。事件(Event):原创 2021-12-09 20:54:21 · 2167 阅读 · 0 评论 -
Java~GUI图形界面编程~AWT2
AWT基本组件基本组件组件功能Button按钮Canvas用于绘图的画布Checkbox复选框组件(也可当作单选框使用)CheckboxGroup用于将多个Checkbox组合成一组,一组Checkbox组件只能有一个被选中Choice下拉选择框Frame窗口,在GUI程序里通过该类创建窗口Label标签类,用于放置提示性文本List列表框组件,可以添加多项项目Panel不能单独存在容器类,必须放到其他容器中Sc原创 2021-12-09 10:23:40 · 410 阅读 · 0 评论 -
Java~GUI图形界面编程~AWT1
文章目录AWT演示1 创建一个窗口演示2-创建panel演示3 创建ScrollPaneLayoutManager布局管理器演示4 FlowLayout布局管理演示5 BorderLayout布局管理演示6 GirdLayout布局管理演示8 CardLayout布局管理AWTAWT(Abstract Window Toolkit):抽象窗口工具包。该包提供了一套与本地图形界面进行交互的接口,是Java提供的用来建立和设置Java的图形用户界面的基本工具。通过学习AWT,我们可以使用Java简单的编原创 2021-12-08 20:53:46 · 320 阅读 · 1 评论 -
JDK、JRE、JVM的区别与联系
jvm是jre的一部分,jvm是虚拟出的一台计算机,这台计算机不关心java源代码如何写的,它只关心java源程序编译出的字节码文件,jvm是java程序能实现跨平台的核心,它不关心真实计算机,也不关心操作系统等等,就像一个中间平台,只负责将字节码文件转换成当前计算机能理解的CPU指令集或系统调用。> jvm有自己完善的硬件架构,如处理器、栈区、寄存器等。原创 2021-12-06 18:58:54 · 7965 阅读 · 1 评论 -
Java~多线程~线程状态、start与run方法区别
文章目录线程的五种状态start方法run方法总结二者区别恭喜你,又发现了一个收获满满的小细节~Java线程的创建主要是两种方式:继承Thread类或者实现Runnable接口。无论是哪种方式,都可以调用start()方法来创建一个新的线程。而run()方法又叫做线程体。run()方法中的代码就是整个线程需要执行的任务。线程的五种状态Java中的线程一般有五种状态:创建,就绪,运行,阻塞等待,销毁。创建:我们在代码中实例化一个Thread类对象,但并未调用该对象的start方法,此时就处于创建状原创 2021-11-14 21:47:07 · 992 阅读 · 0 评论 -
Java如何生成一个简单随机数
Java如何生成一个简单随机数一、利用random方法Java的Math类中,有一个random的方法可以用来生成随机数,这也是最简单的用来生成随机数的方法。random方法讲解random方法本身会生成0~1之间的随机数,注意,这些随机数都是double类型的,并且是大于等于0,小于1的。(不会等于1!!!)在使用的时候我们可以对random方法灵活处理,来获得我们想要的数。 public static void main(String[] args) { //原创 2021-04-17 12:18:31 · 4930 阅读 · 0 评论