Java API
文章平均质量分 91
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 · 568 阅读 · 1 评论 -
Java~数据结构(六)~Java中对象的比较(基本类型和引用类型分别是如何比较的、Comparator/Comparable接口、hashCode和equals方法等)
优先级队列要求:插入的元素不能是null或者元素之间必须能够比较。如果在优先级队列中插入自定义对象,必须是可以比较的对象。为什么?因为优先级队列底层是用堆实现的,向堆中插入元素,必然是需要上下调整的,如果插入的元素无法比较。会抛出异常。很多场景需要明确要求两个对象是可以比较的。如果是两个基本类型,可以直接进行> < 和==比较如果是两个引用类型,不可以直接进行> < 比较,但是可以进行==比较。(默认调用Object中的equals方法)对于自定义类型。原创 2022-10-07 16:49:11 · 556 阅读 · 0 评论 -
Java~数据结构(五)~优先级队列(堆的基本概念、操作及实现&优先级队列、PriorityQueue的使用、TopK问题、堆排序)
堆的删除与插入操作相反,插入是将元素从下往上调整,而删除是将元素从上往下调整。创建一个数组,初始化堆,然后调整堆中的数据,不断向上或者向下,最后调整成堆。2.按照优先顺序,将新元素与其父节点比较,根据大小进行向上或者向下调整。这只是一种,topk问题是在一组数据中求前k个最小元素或者前k个最大元素。2.比较左右节点的元素,将小的元素上调(向上或向下调整)3.不断进行步骤2,知道不需要调整或者调整到堆底。思路:将所有元素放入优先级队列,返回前k个。堆中有两个基本操作:向上调整和向下调整。原创 2022-10-06 17:24:33 · 714 阅读 · 0 评论 -
Java~数据结构(四)~二叉树(什么是树&树一些概念&二叉树&二叉树的基本操作和前中后遍历)
树的基础知识二叉树两种特殊的二叉树如何储存一棵二叉树二叉树的基本操作二叉树的遍历树的基础知识什么是树?树是一种数据结构。由n个节点(n>=0)个有限节点组成一个具有层次关系的集合。树是递归定义的。原创 2022-10-05 21:37:03 · 412 阅读 · 0 评论 -
Java~数据结构(三)~栈和队列(Stack\Queue\Deque的常用方法和模拟实现一个栈和队列等)
【代码】Java~数据结构(三)~栈和队列(Stack\Queue\Deque的常用方法和模拟实现一个栈和队列等)原创 2022-10-04 22:22:11 · 1407 阅读 · 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 · 631 阅读 · 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 · 846 阅读 · 0 评论 -
Java~线程通信:等待/通知机制、等待通知的经典范式、管道输入输出流、Thread.join使用
文章目录volatile和synchronized关键字Java支持多线程来访问一个对象或对象的成员变量但由于每个线程都有一份这个对象的拷贝,所以程序执行时,每个线程看到的变量不一定是最新的(对象和成员变量虽然放在共享内存中,但是多核处理器为了加快程序的执行,允许每个线程有一份自己的拷贝)volatile关键字要求每一个线程对变量的访问和修改都在共享内存中,即每一次修改,所有的线程都可以看到过多的使用volatile会降低程序效率,偶尔一用可以synchronized以修饰方原创 2022-05-20 20:34:40 · 263 阅读 · 0 评论 -
Java~线程优先级、6种线程状态、Daemon线程、构造线程的源码分析、线程的启动、中断
文章目录线程优先级线程状态(6种)Daemon线程启动终止一个线程线程优先级线程优先级就是决定这个线程获得更多或者更少的处理器资源.操作系统采用时分的方式来调度线程给每个线程分配若干时间片,时间片用完了就切换另一个线程时间片的多少就决定了线程用到的处理器资源的多少线程优先级是线程的一个属性,通过setPriority()方法进行设置线程优先级有1-10个等级,默认等级是5,优先级越高分配到的资源越多对于频繁阻塞的线程(比如休眠、I/O操作等)一般需要更高的优先级,偏向计算的可以设置低优先级原创 2022-05-19 18:43:57 · 348 阅读 · 1 评论 -
Java~并发执行程序可能带来的问题(上下文切换、死锁、资源限制)
上下文切换无论单双核处理器都支持多线程多线程并发执行的原理是CPU给每个线程分配CPU时间片,在这个时间片内执行这个线程,时间片一般是几十毫秒(ms),由于非常短,所以我们感觉是多个线程同时执行当前任务执行一个时间片后会执行下一个任务,同时保存上一个任务的状态,当再次回到这个任务时,会继续刚才的状态继续加载,任务从保存到再加载的过程就是一次上下文切换.并发时,线程创建和上下文切换也是有时间消耗的上下文每1秒切换1000多次减少上下文切换减少上下文切换有4种方法,分别是无锁并发编程、CAS算原创 2022-05-18 18:56:04 · 521 阅读 · 0 评论 -
Java~多线程~线程状态、start与run方法区别
文章目录线程的五种状态start方法run方法总结二者区别恭喜你,又发现了一个收获满满的小细节~Java线程的创建主要是两种方式:继承Thread类或者实现Runnable接口。无论是哪种方式,都可以调用start()方法来创建一个新的线程。而run()方法又叫做线程体。run()方法中的代码就是整个线程需要执行的任务。线程的五种状态Java中的线程一般有五种状态:创建,就绪,运行,阻塞等待,销毁。创建:我们在代码中实例化一个Thread类对象,但并未调用该对象的start方法,此时就处于创建状原创 2021-11-14 21:47:07 · 955 阅读 · 0 评论 -
Java~IO流概述、分类、常用的流总结(FileInputStream&FileOutputStream、缓冲流、数据流、标准流、对象流)
文章目录IO流概述IO流概述什么是IO流I:inputO:output通过IO就可以完成硬盘文件的读和写硬盘中的文件加载到内存就是输入(Input)、内存将使用或者修改过的文件再返回给硬盘就是输出(Output)IO流分类?...原创 2022-05-17 21:28:03 · 587 阅读 · 0 评论 -
JavaWeb~模板引擎Thymeleaf总结
文章目录模板引擎ThymeleafThymeleaf使用流程三级目录模板引擎ThymeleafThymeleaf使用流程1.先编写HTML模板文件,放到指定的目录中2.创建Servlet代码1)先初始化一个TemplateEngine实例2)创建一个ServletContextTemplateResolver实例,并且指定要加载的模板文件的路径以及字符集3)将需要和模板引擎关联的变量 使用WebContext来进行表示4)进行渲染 TemplateEngine 有一个process方法来做这原创 2022-03-22 19:44:57 · 1963 阅读 · 21 评论 -
JavaWeb~简单文件上传流程
文章目录这里实现一个简单的图片上传功能,主要是熟悉这个文件上传的交互流程。关于更复杂的文件上传,如大文件的切片上传、断点续传等,这里不做过多介绍。首先在前端创建一个页面,这里我们选择通过form表单的形式上传文件。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>上传一张图片</title></head><原创 2022-03-20 17:49:08 · 2199 阅读 · 11 评论 -
JavaWeb~Servlet~深入理解Cookie
文章目录CookieSession三级目录举例:用户登录CookieCookie是HTTP协议中的一个字段,同时也是浏览器在客户端这边保存数据的一种方式Cookie从哪来,服务器这边产生,通过HTTP响应的Set-Cookie字段来进行设置,返回给浏览器的Cookie怎么存?在浏览器这边储存,浏览器会根据域名、地址,来分别存储Cookie~Cookie到哪去?会在下次请求中自动被添加到 请求中,发给服务器Cookie 存的是什么?字符串,类似于键值对结构的字符串此处的键值对都是程序员自定义原创 2022-03-20 13:48:48 · 1133 阅读 · 14 评论 -
JavaWeb~Servlet~核心类(HttpServlet、HttpServletRequest、HttpServletResponse)、Postman工具、Servlet生命周期
Servlet Api详解Servelt有很多的 Api,这里只介绍三个核心类及其方法的使用,分别是HttpServlet、HttpServletRequest、HttpServletResponse.HttpServlet类我们在写处理请求的类的时候,都需要继承HttpServlet类,继承的目的是为了能重写这个类中的一些方法,将我们的代码“插入”到Tomcat这个“框架”中,然后Tomcat执行的时候方便调用。类似的操作,我们之前也学习过,如继承Comparable接口,目的是为了重写Comp原创 2022-03-19 14:31:40 · 1277 阅读 · 12 评论 -
JavaWeb~Servlet~基本使用、smart Tomcat插件、Servlet工作原理深入了解、Tomcat初始化和处理请求的核心逻辑
文章目录Servlet的基本使用smart Tomcat插件Servlet的基本使用1.创建一个maven项目2.引入依赖~3.创建目录结构 webapp/WEB-INF/web.xml4.编写代码1)创建一个类,继承自HttpServlet2) 重写HttpServlet doGet/doPost方法3)在方法里面根据请求计算响应,直接在响应对象中构造一个"hello world"4)给类上面加一个注解@WebServlet,把这个类和一个具体的HTTP请求的路径关联起来~5.打包原创 2022-03-18 16:46:01 · 1067 阅读 · 17 评论 -
JavaWeb~Servlet~Tomcat介绍/安装/部署静态页面/Servlet介绍/执行的功能/工作原理/使用方法/关联请求/打包部署
文章目录Tomcat文件目录Tomcat作用三级目录Tomcat文件目录bin:可执行文件(启动文件startup.bat、关闭文件shutdown.bat)conf:配置文件(修改端口号:server.xml,建议将server.xml备份)lib:依赖的jar包log:日志文件(记录出错等信息)temp:临时文件webapps:可执行的项目。默认作为存放开发项目的目录work:存放由jsp翻译成的.java源文件,以及编译的.class字节码文件(jsp ->java ->原创 2022-03-17 21:21:18 · 948 阅读 · 10 评论 -
JavaWeb~ajax跨域问题/socket构造请求/Https协议/非对称加密流程/证书机制
文章目录解决jax跨域问题socket构造http请求HTTPS传输过程解决jax跨域问题如下代码,我们使用ajax发起一个http请求。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><script src="https://cdn.b原创 2022-03-15 15:36:29 · 2322 阅读 · 13 评论 -
JavaWeb~网页刷新/前端构造HTTP请求(form表单、ajax异步构造)/同步与异步/封装ajax/jQuery库引入
文本目录一级目录网页前端构造HTTP请求三级目录一级目录F5和ctrl+f5的区别:F5是刷新,ctrl+f5是强制刷新。一个网络页面,不仅仅是一个HTML构建,还会依赖很多其他的资源,CSS,JS,图片等。这些资源都是通过网络,下载到浏览器本地的。由于这些资源大小不固定,当数据包过大,而网络传输速度又比较慢的时候(相对于访问内存/磁盘),页面的加载就会比较慢。此时的浏览器就会把这些资源缓存到本地,以提高后续访问的速度(已存在于本地,可以直接下载)。f5刷新仍然会重复利用这些缓存的数据。而ctr原创 2022-03-14 19:41:32 · 2928 阅读 · 9 评论 -
JavaWeb~http协议/网络通信传输模型/借助工具来监测http请求和响应/正向代理/反向代理/URL统一资源定位符
文章目录HTTP协议介绍在网络通信中几个核心的概念借助工具来观察http的请求和响应http请求和响应的格式http协议总结HTTP请求(request)URLURL encodeHTTP请求中的方法哪些方式会触发http请求HTTP协议介绍http协议非常重要!面试重点,工作常用,好好学这块在网络通信中几个核心的概念服务器 vs 客户端请求和响应。服务器和客户端之间存在多种模型~1.一发一收2.多发一收(典型应用:大文件的上传)3.一发多收一个请求对应到很多的响应。4.多发多收多个原创 2022-03-12 13:40:34 · 762 阅读 · 9 评论 -
前端~javascript~实战案例:网页表白墙/实战案例:简单实现一个备忘录~
文章目录实战案例:表白墙备忘录实战案例:表白墙用CSS,HTML和JS中一些比较基础 的知识设计一个简单 的表白墙,其中css样式比较简单,有兴趣的同学可发挥想象自行修改。表白墙发送的内容会以div标签的方式生成在下方。注意:该表白墙上的数据并不具备持久性,只能保存在当前网页中,一旦页面刷新或者关闭了,这里的数据就没了。如果想要长久的保存数据,可以将这些数据提交到服务器上,然后由服务器将数据储存在文件或者数据库中。但本文介绍的是和JS前端等有关的 知识,数据库或者其他知识这里不展开了<!D原创 2022-03-10 19:59:26 · 3497 阅读 · 2 评论 -
前端~javascript~利用Dom对象获取/修改html表单及css样式属性/操作树节点/实战案例:猜数字小游戏
文章目录获取/修改dom对象属性二级目录三级目录获取/修改dom对象属性<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><img src="male.png" alt="这是一张照片" title="这是一张照片"><scri原创 2022-03-10 16:10:42 · 459 阅读 · 7 评论 -
前端~javascript~webAPI/文档对象模型Dom/Dom树/事件机制/操作元素/实战案例:实现网页计数器
文章目录WebAPI简介DomDom树获取Dom元素事件事件三要素操作dom元素innerHTMLinnerText实战案例:实现网页计数器WebAPI简介什么是API应用程序接口(API,Application Programming Interface)是基于编程语言构建的结构,使开发人员更容易的创建复杂的功能。API中提供了很多的网络接口供开发者使用。JS基本上可以分为三大类:ECAMScript:基础的JS语法DOM API:操作网络页面结构BOM API:操原创 2022-03-09 20:46:10 · 930 阅读 · 5 评论 -
前端~javascript~js对象/new关键字/对象比较/proto原型链
文章目录对象对象的创建理解new关键字JavaScript对象和Java对象的比较对象对象是指一个具体的事物。在JS中,字符串,数值,数组,函数都是对象。每个对象都有自己的属性和方法。对象的创建1.使用字面量进行创建创建对象,使用{}括起来。对象里面的成员,都是通过“键值对”来表示对。<script> let student={ name:'张三', age:20, height:175, sayHello原创 2022-03-09 15:15:49 · 1423 阅读 · 7 评论 -
前端~javascript~JS数组/函数function/作用域/作用域链/向上查找
文章目录一级目录二级目录三级目录一级目录二级目录三级目录原创 2022-03-08 21:56:06 · 597 阅读 · 1 评论 -
前端~javascript~JS介绍/输入输出/语法概览/特殊动态类型/基本数据类型/与Java的对比
文章目录JS介绍JS基础语法三级目录JS介绍JavaScript,简称JS.JS是世界上最流行的编程语言之一,并且是一门脚本语言,通过解释器运行,一般在客户端(浏览器上)运行,现在也可以基于node.js在服务器端运行。在Chrome内置的JS引擎叫做V8worker.(这个是当前最流行的一个JS引擎)JavaScript功能网页开发(更复杂的特效和用户交互)网页游戏开发服务器开发(node.js)桌面程序开发(像Electron,VSCode…)手机app开发关于Java和Java原创 2022-03-08 16:50:45 · 631 阅读 · 6 评论 -
前端~css~Chrome调试工具、元素显示模式、盒模型、flex弹性布局
Chrome调试工具在浏览器任何一个网页中,鼠标右键单击,选择检查,可打开调试工具。或者f12键。打开后可看到如下界面:简单介绍一下其中的元素功能:元素:查看页面结构和样式(前端)控制台:查看JavaScript打印的日志(前端)来源:查看HTML/CSS的源码网络:查看浏览器和服务器(前端后端)性能:前端页面优化设计到的一些技能内存、应用、安全:前端页面涉及到的一些内容~第二个图标模拟在手机/平板上的展示效果。控制台:控制台中可以执行js的代码,也可以看js的日志~彩蛋~原创 2022-03-07 22:02:55 · 1516 阅读 · 4 评论 -
前端~css~基准线与行高、行距和半行距/圆角矩形~
文章目录行高、行距与半行距背景控制行高、行距与半行距在HTML文件中,展示 的文字涉及到这几个基准线:顶线中线基线底线这四条线分别对应了图中的位置,在 vertical-align属性中,有top、middle、baseline、bottom,就和这四条线有关。行高是指上下文本行的基线间的垂直距离,即下图中两条线间的垂直距离。行距是指一行底线到下一行顶线的垂直距离,即第一行粉线和第二行绿线间的垂直距离。半行距是行距的一半,即下图区域三垂直距离/2.区域1,2原创 2022-03-07 14:44:10 · 1952 阅读 · 2 评论 -
前端~CSS~属性(font-family/font-weight/font-style/text-align/text-decoration/text-indent...)
文章目录元素属性文本属性前言CSS 最核心的就是,对属性的使用,有哪些属性,如何使用,以及每个属性都有哪些值~这里不会全介绍,只会介绍一些最常用的属性,CSS属性有很多,这里附上参考文档,可以在使用中学习。CSS参文档元素属性字体类型font-family可以用来设置字体的类型(宋体,隶书,微软雅黑)<style> body{ font-family:'微软雅黑'; }</style>此处将body标签中的字体样式设置成了微软雅黑。但b原创 2022-03-06 17:35:29 · 1478 阅读 · 8 评论 -
前端~CSS~层叠样式表/语法规范/基础/复合选择器的选择与使用
文章目录CSS介绍基本语法规范三级目录CSS介绍前端技术中,HTML是核心骨架,而CSS就是对html构建起来的骨架进行美化,生成“皮肉”。CSS是层叠样式表(Cascading Style Sheets)CSS能够对网页中的元素位置的排版进行像素级的精确控制,实现页面美化的效果。能够做到页面的样式和结构分离。基本语法规范CSS代码,由两个部分构成。选择器{属性:值;}选择器:决定针对哪个元素进行修改。属性和值都是针对被选中的元素进行的~CSS代码创建html文件即可写入。(i原创 2022-03-06 14:49:47 · 450 阅读 · 4 评论 -
前端~html~HTML零基础(二) ~HTML常见标签补充/实战案例:个人简历网页展示/填写
HTML是由标签构成的。并且标签一般是成对出现的,但是也有些标签是“单标签”标签是可以嵌套的~(树形结构.DOM树等)HTML是运行在浏览器中的。已经了解到了HTML的基本结构如下:<html> <head> <body> //需要编写的内容 </body> </head></html>上述基本结构不需要每原创 2022-03-05 14:15:38 · 865 阅读 · 0 评论 -
Java~Map集合详解
文章目录Map介绍核心Map内部哈希:哈希映射技术三级目录Map介绍java.util中的集合类包含Java中某些最常用的类,其中最常用的集合类就是List和Map.本文来介绍Map.Map提供了一个更通用的元素储存方法。Map集合类用于储存元素对(KV:键和值),其中每个键映射到一个值。核心MapJava自带了各种Map类。这些Map类可归为三种类型:通用Map用于在应用程序中管理映射,通常在java.util程序包中实现Hashmap、Hashtable、Properties、Link原创 2022-03-04 10:29:48 · 1237 阅读 · 0 评论 -
Java~遍历Map集合以及实现了Map的接口类(HashMap、TreeMap、LinkedHashMap、Hashtable)的四种方式
文章目录前言获得键值对只获得key或者value根据key找value迭代器遍历(Iterator)前言Map集合的遍历与List和Set集合不同。Map有两组值,因此遍历时可以只遍历值的集合,也可以只遍历键的集合,也可以同时遍历。Map以及实现Map类的接口(如HashMap\TreeMap\LinkedHashMap\Hashtable等)都可以用以下几种方式遍历。获得键值对根据键值对来找键和值。通过map.entrySet()方法可以获取所有的key-value集合。遍历该集合,获取每一原创 2022-03-01 21:15:08 · 432 阅读 · 0 评论 -
前端~html~HTML零基础(一) ~HTML常见标签/如何开发一个html文件/在网页查看源码
文章目录引入-什么是HTMLHTML基础html标签html元素html开发工具html文件基本结构/网页结构三级目录引入-什么是HTMLHTML是用来描述网页的一种语言。HTML 指的是超文本标记语言: HyperText Markup LanguageHTML不是编程语言,而是一门标记语言标记语言是一套标记标签(markup tag)HTML使用标记标签来描述网页HTML文档包含了HTML标签及文本内容HTML文档也叫做web页面。HTML基础html标签HTML代码由"标签"原创 2022-02-28 11:30:51 · 7486 阅读 · 0 评论 -
进程与线程系列(三)之阻塞线程、线程状态转换和常用线程名词解释
文章目录如何阻塞一个线程1)join方法2)sleep方法3)yield方法4)suspend和resume 方法5)wait和notify方法6)notifyAll方法获取当前线程的引用-currentThread()方法常用的线程名词解释线程状态和线程状态转换 每天进步一点点,千里之行,始于足下!如何阻塞一个线程线程阻塞的含义就是 让该线程暂停来等待某件事情的发生或者某件事情的结束。被阻塞的线程将无法获得cpu时间片,或者说cpu的优先执行权。操作系统内的调度器将忽略被阻塞的线程。直到该线程被原创 2021-11-18 18:16:23 · 1497 阅读 · 0 评论 -
多线程演示并发与串行的效率、Java中的Thread类、如何中断一个线程
这里写目录标题多线程优势-代码体现Thread类及其常见方法多线程优势-代码体现多线程是用来实现并发编程,以期望来提升代码的运行效率。下面我们通过一段代码Thread类及其常见方法原创 2021-11-16 21:23:44 · 293 阅读 · 3 评论 -
Java~多线程~利用Java创建线程的几种方式、进程与线程区别(重点)
文章目录进程、线程的概念->进程->线程->Java线程与操作系统中线程的关系->用Java创建线程的几种方式->继承Thread类,重写run方法->继承Thread类,重写run方法,使用匿名内部类->实现Runnable接口,重写run方法->实现Runnable接口,重写run方法,使用匿名内部类->使用lambda表达式==进程、线程的区别(面试重点)== 欢迎阅读本篇博客~进程、线程的概念->进程我们计算机中的很多操作系统都是支原创 2021-11-14 15:52:53 · 600 阅读 · 5 评论