自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

敲敲敲

Java知识点+日常题解

  • 博客(71)
  • 问答 (1)
  • 收藏
  • 关注

原创 Java中的IO操作

前言】Java比较少用于系统软件开发,大部分是业务开发掌握基本常识理论(网络(网卡)、文件(硬盘))重点是网络——编写实例程序。

2022-08-18 11:10:49 394 2

原创 应用层协议——DNS

所谓递归查询,就是指DNS客户端发出查询请求后,如果DNS服务器内没有所需的数据,则DNS服务器会代替客户端向其他的DNS服务器进行查询,直至查找到结果回来,即这种查询方式,DNS服务器必须给DNS客户端做出回答。第一台DNS服务器向第二台DNS服务器提出查询请求后,如果第二台DNS服务器内没有查找到,则它会提供第三台DNS服务器的IP地址给第一台,让第一台直接去向第三台DNS服务器查询,依此类推。根域名服务器告诉本地域名服务器,下一个要查询的顶级域名服务器dns.com的IP。...

2022-08-07 12:22:27 562

原创 会话管理——Cookie和 Session

谁在跟http会话,该跟谁会话了——Cookie + Session机制(1)Cookie角度Cookie是浏览器-服务器之间的:​ 浏览器需要保存Cookie,在合适的请求中携带Cookie,表现为HTTP请求头中的Cookie Header​ 服务器生成Cookie并传递给浏览器,表现为响应头中的set Cookie用户第一次登录——>服务端为该用户生成一个Cookie,并把Cookie返回给用户——>之后,在Cookie有效期内,该用户都携带CookieCookie实则是key-value对,其中有个

2022-07-06 11:10:36 483

原创 Servlet——文件上传

更改表单提交方式:form enctype = “multipart/form-data”,method 必须为post(如果不更改,则文件上传并不能上传实际文件里的内容,上传的只是文件名称等元信息)默认的表单提交方式为application/x-www-form-urlencoded上传文件后网络抓包先正常操作,重写doPost然后,必须使用@MultipartConfig修饰类读取文件时,用req.getPart()如下面这个例子:前端:后端:实现结果:点击选择文件,弹出本地文件目录,选择将要

2022-07-06 10:16:05 1855

原创 Servlet

首先明确,Servlet是一个接口Servlet的生命周期分为5个阶段:加载、创建、初始化、处理客户请求、卸载。(1)加载:容器通过类加载器使用servlet类对应的文件加载servlet(2)创建:通过调用servlet构造函数创建一个servlet对象(3)初始化:调用init方法初始化(4)处理客户请求:每当有一个客户请求,容器会创建一个线程来处理客户请求(5)卸载:调用destroy方法让servlet自己释放其占用的资源三个主要方法初始化——init(懒汉模式创建的单例对象,初始化时自动调用且只调

2022-06-22 21:47:19 196 4

原创 Tomcat(二)

【前言】之前写过的Tomcat大概安装及目录解析: Web应用服务器——Tomcat_笨笨在努力的博客-CSDN博客_web应用服务器在上一篇HTTP详解中,我们自己模拟实现了HTTP请求与响应,可以看到,对于处理动态请求,自己实现服务器是比较麻烦的(比如需要Socket套接字连接,读取请求体,响应体),所以,是有人已经帮我们实现了的,就是已有的Web应用服务器,——Tomcat所以简单来说,Tomcat主要就是用于处理动态请求的Tomcat——是被人写好的main方法我们的代码是被Tomcat反向控制的

2022-06-22 20:43:28 119

原创 计算机网络(五)——应用层HTTP协议

HTTP——应用层协议,描述业务,非OS代码,基于TCP,超文本传输协议(Hyper Text Transmission Protocal)HTTP协议是文本协议(不像之前的TCP那些,报头是二进制啦,而HTTP直接就是文本,所以,方便人查看,但是对程序而言还要解读是性能差的)平时,我们打开一个网站,应用的就是http(或者https)协议HTTP以资源为基本单位,一次请求响应就是请求一个Web资源然后响应回来一个Web资源内容内容(1)哪种操作——Post、Get、delete等浏览器输入url地址——G

2022-06-20 21:22:53 884

原创 剑指Offer46——把数字翻译成字符串

剑指Offer46——把数字翻译成字符串

2022-06-20 09:39:35 129

原创 错排问题Dn = (n - 1) * (Dn-1 + Dn-2)

错排问题

2022-06-12 10:54:04 1046 1

原创 高频面试题——线程篇

目录1.关于各种各样的锁1.1 读写锁1.2 重入锁(ReentrantLock)与不可重入锁1.3 公平锁(fairLock)和非公平锁1.4 乐观锁 和 悲观锁1.5 互斥锁 与 自旋锁2.synchronized锁的实现与优化2.1 如何优化2.2 什么是偏向锁?2.3 Synchroonized锁的实现原理?3.ConcurrentHashMap VS HashMap3.1 前置知识:3.2 相关面试题4.线程 VS 进程1.关..

2022-06-04 21:55:40 223

原创 Java中的多线程(下)

一、juc下的Lock二、volatile机制三、单例模式(懒汉、饿汉)四、阻塞队列五、定时器六、线程池

2022-05-29 12:39:33 254

原创 计算机网络(四)——数据链路层

目录【前言】1.ARP——Address Resolution Protocol2.以太网3. MTU——最大传输单元【前言】数据链路层:局域网内部的主机与主机间的通信那么如何知道是要和哪一台主机通信呢?答案是通过MAC地址在上一篇计算机网络(三)——网络层IP协议我们已经知道了MAC地址,也知道了网络层的IP地址是最终目标地址,而实际路由过程并不是一次性到达的,而是一跳一跳转过去的,通过路由表得到下一跳的IP地址,再通过ARP协议得到下一跳IP的MAC地址,根据MAC.

2022-05-22 10:09:36 259

原创 计算机网络(三)——网络层IP协议

【前言】网络层:跨局域网的主机与主机间的通信,主要通过IP地址进行路由寻址到达的,网络层最主要的协议就是IP协议目录1. IP协议1.1 IP地址1.2 IP地址 & MAC地址1.3 IP协议1.4 IP路由1.5 NAT——内外网转换1.6 MTU——最大传输单元1. IP协议讲IP协议之前,我们先来认识一下IP地址,这里我们默认指的就是IPv4地址(因为目前IPv4还广泛的使用,且可以使用其他技术来解决IP地址不足的问题,所以IPv6也就没有普及)1

2022-05-21 23:03:30 652 1

原创 计算机网络(二)—— 传输层协议(TCP & UDP)

1.UDP协议1.1 UDP协议的包头信息:定长——8个字节,容易做解包16位源端口 + 16位目的端口 + 16位UDP长度(决定了能传输的数据最大长度是64K) + 16位校验和(校验和就是为了防止数据错误,类似hash算法,发方计算得到校验和,收方用相同hash计算,比对数据,如果收端的hash值与发端的hash不一致,会直接丢弃)1.2 UDP特点 无连接的(不用连接就发送); 不可靠的(只管发,至于发成功没,发正确没是不能确定的) 面向数据报文(.

2022-05-21 13:54:04 1033

原创 计算机网络(一)基础概念篇

目录一、网络基本原理二、各层协议概览及常见术语:各层封装MAC地址IP地址端口ip:port:进程&port协议网络分布式架构的特点一、网络基本原理网络:进程与进程间的跨主机通信OS的网络管理模块将数据从 内存——>输出设备(网卡)——>再一层一层传递给另一台主机网卡:如何发送数据(填充数据就是把数据复制给网卡+触发发送),如何接收数据(接收数据+interrupt中断机制给到OS+OS把数据给进程)进程并不是原封不动的

2022-05-17 10:33:32 268

原创 Java中的多线程(中)

一、栈和栈帧二、线程间的通信三、线程安全四、synchronize锁五、juc下的Lock六、volatile机制七、单例模式(懒汉、饿汉)八、阻塞队列九、定时器十、线程池

2022-05-01 20:07:26 937 5

原创 Day1 ~ Day6 整理

1.多态之方法覆写方法覆写:子类与父类的方法名称,参数,返回值均一样考察重点!!!方法覆写的权限要求:方法覆写时,子类方法的权限修饰符一定要 >= 父类的权限(同为包访问权限,但是位于不同包下,也是不可以的)方法覆写时,不能出现private权限(如果父类该方法为private权限,则子类的同方法能编译,但是是作为一个普通方法,并不是方法覆写)(如果子类该方法为private权限,要么不符合>=父类方法权限,编译报错,要么两个都是private权限,没啥意义,也不是

2022-05-01 10:02:59 257 2

原创 Java中的多线程(上)

一、关于线程(1)什么是线程 —— 一个执行流就是一个线程之前我们写的代码都只有一个main主线程在操作系统职责概述这一篇里我们详细总结了进程与线程的概念:(具体进程线程的概念理解点链接:操作系统的职责概述_笨笨在努力的博客-CSDN博客)相应的,在Java中,也有进程和线程的操作,基本概念都是一样的,进程是系统分配资源的最小单位,线程是进行调度的最小单位,在Java中,主要也是多线程的开发,基本很少有多进程的开发(2)为什么要有多线程呢?多线程实现的就是并发编程,主要还是为了.

2022-04-30 11:51:36 935 9

原创 Java中的反射机制

1.反射的概念2.反射的四个核心类(Class,Constructor,Method, Field)2.1 Class获取Class对象的三种方法运行时类型&编译时类型通过反射来创建一个类的实例-newinstance,默认是调无参构造,当无参构造不存在或者无参构造不可见,就会报错——》其他构造方法创建类的实例,需要用到Constructor2.2 ConstructorgetConstructors() ——只能获取当前类(不包括父类)的所有public构造方法ge

2022-04-20 10:01:13 633 14

原创 操作系统的职责概述

目录1.操作系统的产生2.操作系统的概念3.进程的概念4. OS的进程管理5.OS的内存管理6.OS其他职责7.进程(process)——>线程(thread)(OS层面)1.操作系统的产生操作系统并不是与计算机硬件一起诞生的,随着计算机的不断发展,在多任务多用户的场景下,为了更好更合理的协调不同任务对硬件资源的访问,安排CPU以及其他资源的时间、空间安排,就有了操作系统的产生操作系统主要是为了满足两大需求:提高资源利用率、增强计算机系统性能目前常见..

2022-04-18 20:12:19 987 14

原创 计算机原理

1.冯诺依曼体系2.CPU基本原理2.1 门电路2.2 算术逻辑单元——ALU2.3 存储单元——寄存器、缓存2.4 控制单元——2.3 CU2.5 CPU = ALU + CU + 寄存器、缓存2.6CPU的中断模式

2022-04-16 11:24:26 995 15

原创 Leetcode T448——消失的数字

emmm……这道题set集合可以很简单的解出来,但是,使用了额外空间,于是进阶要求说:你能在不使用额外空间且时间复杂度为 O(n) 的情况下解决这个问题吗? 你可以假定返回的数组不算在额外空间内于是乎,进阶版想不出来啊,而且这个进阶版思路上一次懂了今天二刷结果又忘忘了,所以,重点是进阶版,本人实在觉得妙啊,不晓得进阶版的原创题解是怎么想出来的啊😅1. 题目描述原题链接点这里:448. 找到所有数组中消失的数字 - 力扣(LeetCode) (leetcode-cn.com)给你一个含.

2022-04-14 21:22:38 688 16

原创 Web应用服务器——Tomcat

最近学校的课程在学习Spring框架,接触到了Tomcat,这一篇就来浅析一哈Tomcat的安装及使用1.Web应用服务器首先来明晰一下Tomcat是用来干什么的,2.官方下载3.目录解析及运行4.可能出现的问题及解决方案5.网页的发布...

2022-04-13 22:08:41 3945 33

原创 MySQL学习(八)SQL进阶版

目录1.聚合查询1.1聚合函数1.2聚合字段1.3多聚合1.4having关键字2.联表查询2.1 普通联表查询2.2 +过滤条件2.3 内连接2.4 左外连 and 右外连2.5 自连接3.子查询3.1 单行子查询3.2 多行——in / not in3.3 多行——exists / not exists3.4 in & exists 区别4.真题题解1.聚合查询1.1聚合函数常见的聚合函数如下:用..

2022-04-12 16:54:32 1957 37

原创 MySQL学习(七)索引

1.概念2.分类3.优缺点4.适用情况5.explain命令

2022-04-12 08:01:53 292 6

原创 MySQL学习(六)事务的ACID特性及使用

1.事务的概念及特性1.1 概念(1)事务:指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败ps:感觉就是字面意思,一件事(2)事务的产生:尤其应用在银行业务上,比如A转账1000元钱给B,当A账户余额减少1000后,突然发生了故障,如服务器断开的情况,致使B的账户余额并未来得及增加1000,这并不是我们期望的结果,故而就有了事务的产生。如果A账户余额增加的动作,和B账户余额减少的动作被定义为一个事务,那么,这两个动作,要么都成功,要么都失败。比如刚刚提到的,突然网

2022-04-11 16:26:41 697 10

原创 只出现一次的两个数字?

一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字原题链接附上:数组中只出现一次的数字_牛客题霸_牛客网 (nowcoder.com)之前做过只出现一次的一个数字,这种很简单,直接全部数字异或即可,最后异或的结果就是答案。然后,今天就碰到了升级款,有两个数字都是只出现了一次,让你找出这两个数。emmm……两个的话,如果仍旧全部异或一遍,最后得到的结果是这两个数字异或后的结果,貌似不太可行。于是,先用map集合遍历得到每个数字出现的次数,最后返回次

2022-04-09 18:21:36 120 3

原创 排列组合问题

好吧,又回来回溯算法了,yes,之前写过两篇自学的回溯算法,然鹅,如今再碰到基本一模一样的题题,还是不会做啊啊啊,好吧,那就从头来过,再次肝几道简单的回溯题。1.二叉树中和为某一值的路径,原题链接奉上:二叉树中和为某一值的路径(二)_牛客题霸_牛客网 (nowcoder.com)解法:还是回溯回溯回溯!!!待选集合list先add节点值,然后更新target值 判定现有list是否满足条件,如若满足,将待选集合add进总结果集中(这里add的时候注意,一定要是深拷贝,重新new一

2022-04-08 17:09:18 234 3

原创 MySQL学习(五)JDBC 使用java操作数据库

JDBC

2022-04-05 12:45:15 2059 11

原创 MySQL学习(四)表的设计篇

表的设计——》概念层-逻辑层表与表之间通过字段建立联系设计表的参考步骤1.分析应用的不同角色(如教务系统 老师+学生2.找出应用的主场景(需求分析)(沟通很重要)3.以不同角色为时间,写用户故事不好的故事:角色转换?4.从用户故事中找实体(判断实体是否需要转换为开发中的类,数据库中的表)5.E-R图,描述实体,实体与实体之间的关系,转换为表实体-实体1:11:n 关系字段存多表m : n 再建一个关系表, 转换为两个1对多关系6.确定表中的字段,字段类型及

2022-04-04 13:32:07 2094 3

原创 MySQL学习(三)DML基础之U&D

C&R看这篇:MySQL学习(二)DML基础之C&R_ᝰꫛꪮꪮꫜ*的博客-CSDN博客这一篇,整理一下修改Update和删除Delete目录1.Update2.Delete1.Update -- update以行为单位进行删除,无指明哪几行,则全部行的指定列修改 update exam_result set math = 1; -- 用where语句限制修改哪几行 update exam_result set chine..

2022-04-04 11:39:25 1108 1

原创 斐波那契数列的四种求解

目录描述方法一:迭代求解方法二:动规求解方法三:递归求解方法四:递归+Map剪枝描述大家都知道斐波那契数列,现在要求输入一个正整数 n ,请你输出斐波那契数列的第 n 项。斐波那契数列是一个满足fib(x)=\left\{ \begin{array}{rcl} 1 & {x=1,2}\\ fib(x-1)+fib(x-2) &{x>2}\\ \end{array} \right.fib(x)={1fib(x−1)+fib(x−2)​x=1,...

2022-04-01 09:53:09 1237 3

原创 二叉树——(四)进阶面试题

105. 从前序与中序遍历序列构造二叉树 - 力扣(LeetCode) (leetcode-cn.com)重建二叉树_牛客题霸_牛客网 (nowcoder.com)class Solution { int index; public TreeNode buildTree(int[] preorder, int[] inorder) { return buildTreeHelper(preorder,inorder,0,preorder.length); }

2022-03-31 17:42:35 1207 10

原创 MySQL学习(二)DML基础之C&R

【前言】DML ——Data Manipulation Language,数据操控语言,主要就是增删查改语句数据准备,先建一张表student表,表内字段有:主键id,学号sn,姓名name,QQ邮箱qq_mail1.Create 新增数据准备,先建一张表student表,表内字段有:主键id,学号sn,姓名name,QQ邮箱qq_mail以下增加操作我们在这张表里进行增删查改操作DROP TABLE IF EXISTS student;CREATE TABLE student

2022-03-30 10:33:47 527 19

原创 MySQL学习(一)数据库基础

数据库基础

2022-03-29 18:15:45 1210 6

原创 二叉树——(三)基础题解

判断一颗二叉树是否是平衡二叉树。OJ链接

2022-03-27 16:56:56 691 1

原创 堆和优先级队列

【前言】堆有很多种存储方式,二叉堆是其中一种,下面我们所说的堆均默认为二叉堆,即基于二叉树的堆1.堆1.1堆的特点首先堆在逻辑上是一棵完全二叉树 其次,一般物理上用顺序表(数组)来存储 根据堆节点间大小关系的不同,堆又分为大根堆和小根堆两种大根堆:也叫最大堆,堆中根节点值一定>=子树节点值小根堆:也叫最小堆,堆中根节点值一定<=子树节点值【注意】节点的大小关系与所处层次无关,不能肯定的说低层次的节点值一定比高层次的节点值大或小。如下图,是一个小根堆,满足任意一个根节点

2022-03-22 13:42:23 1494 3

原创 七大排序算法大汇总(下)快排详解

1.基本快排1.1递归1.2非递归2.快排优化问题之——数据近乎有序2.1分区点随机2.2分区点三数取中3.快排优化问题之——重复元素过多3.1二路快排3.2三路快排4.快排性能分析

2022-03-20 16:56:24 1170 2

原创 七大排序算法大汇总(上)

【前言】排序的稳定性:稳定性:两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们称该算法是具备稳定性的排序算法。如下面这个例子,未排序前,5(a)是在5(b)前面的,因为5=5,所以如果排序后5(a)仍然是在5(b)前面,保证了相等的数排完序之后的相对位置仍然未变,我们就说这种排序是稳定的那么,为什么有时候需要保证稳定性呢,来看一个典型的现实例子:某商城订单默认是按时间顺序排列,现需要按照订单金额大小从小到大排序,而对于金额大小一样的订单,排序后保证其时间顺序.

2022-03-19 20:17:51 1113 1

原创 哈希表(HashMap)的学习与实现

1.哈希表的起源?首先我们来分析一下从一组数据中查找某个元素的效率:如果顺序查找,则需要从头开始查找,时间复杂度为O(N);即使用刚学的BST进行查找,时间复杂度也为O(log N)

2022-03-15 16:55:42 1873 4

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除