牛客第三章
# 一个类的构造器能不能调用这个类中的其它构造器?
可以,this () 和 super () 都是构造器,this()调用本类构造器,super()调用父类构造器
# Java8 中,使用了开放地址法解决哈希冲突的类有?
ThreadLocalMap 使用开放地址法处理散列冲突,而 HashMap 中使用的是分离链表法。
# WEB 开发中实现会话跟踪实现的是。
session 使用 setAttribute(String str,Object
obj) 方法将对象捆绑到一个会话。
Cookie:一个 Cookie 是一个小的,已命名数据元素。服务器使用 SET- cookie 头将它作为 HTTP 响应的一部分传送客户端,客户端被请求保存 Cookie 值,然后对同一个服务器的请求使用一个 Cooike 头标将其返回到服务器。Cookie 的好处就是浏览器结束后,客户端计算机重启后依然可以保存用户的数据。
URL 重写,URL 可以在后面附加参数,和服务器同步发送,以键值对的形式
隐藏表单域:比较适合大量数据存储。
# Hashtable 和 HashMao 的区别是。
Has ...
SpringCloud开始
首先 new 一个 project、
版本配置 springboot 2.1.3release
springcloud Greenwich.SR1
给启动类加上注解 @EnableEurekaServer,访问 localhost:8080
配置 yml
123456789101112################ 项目基本配置 ################spring: application: # 对应注册Eureka中的服务名 name: eureka ################ Eureka配置 ################eureka: client: # 防止Eureka启动时注册本身服务 register-with-eureka: false fetch-registry: false
进入到服务注册中心。
出现的异常是 Eureka 启动时会注册自己本身服务,而本身服务却还没启动成功,则抛出异常。
Request execution error. endpoint=DefaultEndpoint{ servi ...
Linux
# CPU 和 Kernel
内核是负责内存管理的,直接对 CPU、Memory 和 Devices 进行操作的。
内核其实是软件,CPU 是硬件实体。
# 系统调用
进程在访问系统资源的时候有两种级别,一种是用户态(user model),普通用户权限,有读取限制。
另一种是系统态(kernel),超级用户,对计算机资源的绝对控制。
系统调用中,我们都是用的用户态的使用权,当我们需要使用操作系统的系统级态级别权限就得使用到系统调用了。
# linux 常用命令及 shell 编程
我用 win11 的 wsl2 安装了一个基于适用于 windows 的 linux
安装好后设置用户名和密码
查看用户的 cpu 信息:cat /proc/cpuinfo
查看 wsl 的虚拟机:wsl -l -v
创建文件:touch 文件名和后缀
查看当前目录下的所以文件及文件夹的权限 ll
将当前文件夹下的所有文件权限更改为 777,全部可读可写可执行 **chmod -R 777 ./ **
777,三个数字依次代表 user、group、other 的权限
保存退出:
输入 “w ...
操作系统
# 线程和进程的区别。
多个线程共享进程的堆和方法区(在 jdk1.8 之后改名为元空间)资源,但是每个线程有自己的程序计数器、虚拟机栈和本地方法栈。
总结:线程和进程最大的不同就是各个进程是独立的,而线程不一样,线程之间会相互影响。
什么是操作系统?
12管理计算机硬件与软件资源的程序,是计算机的基石。其核心部分是内核,负责内存管理,硬件管理。它的作用相当于是用来连接程序还有硬件的桥梁,决定着整个系统的性能还有稳定性。
什么是系统调用?
1234567891011121314首先进程在系统上的运行分为两个级别:1.用户态:user权限2.系统态:root权限当我们需要调用操作系统的子功能时,就需要系统调用,因为平时只有用户态的权限。(你可以简单这么理解)一般就是与系统态级别的资源有关的操作(比如文件管理,进程控制,内存管理等)都必须通过系统调用向系统提出服务的请求,而且是操作系统代劳操作。系统调用的分类:1.设备管理。完成设备的请求或释放,以及设备启动等功能。2.文件管理。完成文件的读、写、创建及删除等功能3.进程控制。完成进程的创建、撤销、阻塞及唤醒等功能4.进程通信。完成 ...
git疑难杂症
不明所以:22 号端口被占用后,莫名其妙又好了
老是显示我需要先更新再推送,其实也没什么需要更新的,就是几个文件夹改动,这里使用强推解决
更新还是使用 git pull origin master
# 关于网站的搭建
使用的是 hexo 框架
其实 github 的地址域名可以不带 github. 用户名.com 的
可以使用比较高级的域名,在新建 repository 中设置
搭建步骤:
创建 GitHub 账号
下载 git、node.js
创建 ssh
git 中
npm install -g hexo-cli
hexo init # 初始化
npm install # 安装组件
hexo g # 生成页面
hexo s # 启动预览
npm install hexo-deployer-git --save
修改配置文件
1234deploy: type: git repository: git@github.com:用户名/用户名.github.io.git branch: master
hexo d 部署
# 使 ...
Java面试题---框架
框架
author: “\U0001F336 辣椒炒饭”
tags:
Spring
SpringMVC
SpringBoot
categories:
面试题
date: 2023-03-04 18:21:00
框架
author: “\U0001F336 辣椒炒饭”
tags:
Spring
SpringMVC
SpringBoot
categories:
面试题
date: 2023-03-04 18:21:00
框架
author: “\U0001F336 辣椒炒饭”
tags:
Spring
SpringMVC
SpringBoot
categories:
面试题
date: 2023-03-04 18:21:00
# 谈一谈 Spring 框架。
一般来说,Spring 框架是指 Spring Framework,其核心的两个概念是 IoC(Inversion of Control: 控制反转)和 AOP(Aspect-Oriented-Programming:面向切面编程),优点是便于集成第三方组件(电子邮件,任务,调度,缓存等)
# Sprin ...
基础第二章
# 四
工厂模式:
总结看看理解就行
hashCode 和 equals 的关系
如果两个对象的 hashCode()相等,那么他们的 equals()不一定相等。
但是如果两个对象的 equals()相等,那么他们的 hashCode()必定相等。
计组复习:
编译程序和解释程序最大的区别是:前者生成目标代码,而后者不生成。
call by Value (值传递)/call by reference (引用传递)
哪种 Java 变量声明方式可以避免程序在多线程竞争情况下读不到正确的值?
1.volative 会保证新值可以立即同步到主内存,以及每次使用前立即从主内存读取
2.static volative 同理
synchronized 可以修饰方法、代码块或者对象。不可以修饰变量。
Object 是所有类的直接或者间接父类
toString 方法是 Object 中定义的方法,不需要重写也可以使用。
length 是数组的属性,length () 是 String 的方法,size () 是集合 collection 的方法
链接:
h ...
基础第一章
# 一
1.mysqldump:备份,还原,按条件导出,导入,导出表
2.mysqladmin:用于执行管理性操作
3. 关系数据库设计中,关系模式是用来记录用户数据的二维表
4.INNER JOIN、LEFT JOIN 和 RIGHT JOIN 的区别
A INNER JOIN B:返回 A 和 B 中符合 on 条件式的记录
A LEFT JOIN B: 返回 A 中的所有记录和 B 中符合 on 条件式的记录
A RIGHT JOIN B:返回 B 中的所有记录和 A 中符合 on 条件式的记录
5.string:不可变字符序列,StringBuffer:可变字符序列,stringBuilder: 可变
6.Java:
JDK、JRE、JVM 三者的关系,以及 JDK、JRE 包含的主要结构有哪些?
JDK = JRE+java 的开发工具(java.exe\java.exe\javadoc.exe)
JRD = JVM + java 的核心类库
为什么要配置 path 环境变量?如何配置?
通过配置 path 环境变量,我们可以使某个程序,比如 javac ...
合作开发,git拉取别人的仓库并更新推送
想要借助 gitee 远程仓库共同开发一个项目,首先你得需要一个账号,这个不细讲。
首先本地在文件夹新建一个文件夹用于存放项目的。
然后 bash 进入该文件夹
第一步关联本地仓库
git init
第二步关联本地仓库到远程仓库地址
git remote add origin (仓库地址)
第三步克隆仓库里的项目
git clone (仓库地址,同时输入你的账户和密码)
然后 cd 进更改的文件夹,其实也可以不 cd
第四步查看添加了哪些文件
git status
第五步将文件添加到暂存区
git add .
第六步 git commit -m 我修改了文件(-m 后面添加描述日志,尽量写好)
最后一步
git push -u origin master
过程截图
图一
图二
图三
# 远程更新到本地仓库
从远程仓库合并到本地仓库时,一定要注意项目地址
然后就会出现又蹦出一个项目出来
具体操作如下:
进入到你的本地仓库文件夹
git fetch origin master:temp (这里的 temp 分支需要你新建)
git merge temp (合并 tem ...
计算机网络
# TCP 与 UDP 的区别。
UDP 不需要连接,而 TCP 面向连接,且传输前必须建立连接,传输完成后需要释放连接。
UDP 不是可靠传输,被接收方不需要确认,数据有可能不会到达。而 TCP 提供可靠传输,会有三次握手。
UDP 不管事,发出去就不管了,就是只管发。TCP 不一样,TCP 会明确说明自己在发送还是在接收,是否发送成功是否接收成功都会明确说明。
由于 TCP 比较复杂,所以效率没有 UDP 高。
TCP 面向字节流,UDP 面向报文。
TCP 只支持点对点通信,类似打电话。
表格总结一下(来源于 JavaGuide)
# 什么场景选择 TCP?什么时候选择 UDP?
UDP 用于即时通信。
TCP 非即时。发邮件,关键数据传输。
# 为什么要三次握手?
目的当然是为了建立可靠的传输了,三次握手是为了保证通信双方都能实现接收和传输正常使用。点对点通信,就像打电话。
三次握手的过程:
第一次握手:服务端发送正常,还差接收正常。客户端都不能确认。
第二次握手:客户端确认接收正常,还差发送正常,然后客户端发送请求,等待服务端确认。这时可以确认
# http ...