线程基础
基本概念程序是操作系统能运行的文件
进程是运行的程序
一个程序可以有多个进程
进程:进程是操作系统进行资源分配的基本单位
多进程并行处理:把程序写在不同的内存位置上来回切换
多线程并行处理:一个程序内部不同任务的来回切换
通俗来讲:
线程:程序里不同的执行路径
mian方法开启的线程叫做主线程
线程:调度执行的基本单位
一个程序执行的时候,内存会先找到它的主线程,推送给CPU执行,主线程执行时可能会开启其他线程,这时就涉及到线程之间的切换
线程切换也是需要资源的
面试题
单核CPU设定多线程是否有意义?
有意义
CPU密集型:计算多,IO密集型:输入输出多
工作线程数是不是设置的越大越好
不是,线程切换也需要消耗资源
工作线程数(线程池中线程数)设为多少最合适?
N = N(CPU)+ U(CPU)* (1 + W / C)
N(CPU)是处理器核的数目
U(CPU)是期望的CPU利用率(0 - 1)
W / C 是等待时间与计算时间的比率
线程的创建创建线程的5种方法
new MyThread().start() MyThread扩展了Thread类,重写 ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment
哈希表
一般哈希表都是用来快速判断一个元素是否出现集合里。
思路绝大多数来自于 代码随想录,只为个人学习与总结
有效的字母同异位242.有效的字母同异位
数组其实就是一个简单哈希表,而且这道题目中字符串只有小写字符,那么就可以定义一个数组,来记录字符串s里字符出现的次数。
123456789101112131415161718//LC242class Solution { public boolean isAnagram(String s, String t) { int[] record = new int[26]; for(char item : s.toCharArray()) { record[item - 'a'] += 1; } for(char item : t.toCharArray()) { record[item - 'a'] -=1; } ...
MyBatis基础
MyBatis的简介
原始jdbc操作
查询数据
123456789101112131415161718192021//注册驱动Class.forName("com.mysql.jdbc.Driber");//获得连接Connection connection=DriverManager.getConnection("jdbc:mysql:///test","root","mysql");//获得statementPrepareStatement statement=connection.prepareStatement("select id,username,password from user");//执行查询ResultSet resultSet=statement.executeQuery();//遍历结果集while(resultSet.next()){ User user=new User(); user.setid(resultSet.get("id& ...
回溯算法
回溯算法模板123456789101112void backtracking(参数) { if (终止条件) { 存放结果; return; } for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) { 处理节点; backtracking(路径,选择列表); // 递归 回溯,撤销处理结果 }}
代码绝大多数来自于 代码随想录,只为个人学习与总结
组合每次从集合中选取元素,可选择的范围随着选择的进行而收缩,调整可选择的范围,就是要靠split.
12345678910111213141516171819202122232425//LC77class Solution { List<List<Integer>> res=new ArrayList<>(); List<Integer> path=new ArrayList<>(); ...
HTTP&request&response
HTTP:概念:Hyper Text Transfer Protocol 超文本传输协议
* 传输协议:定义了,客户端和服务器端通信时,发送数据的格式
* 特点:
1. 基于TCP/IP的高级协议
2. 默认端口号:80
3. 基于请求/响应模型的:一次请求对应一次响应
4. 无状态的:每次请求之间相互独立,不能交互数据
* 历史版本:
* 1.0:每一次请求响应都会建立新的连接
* 1.1:复用连接
请求消息:客户端发送给服务器端的数据* 数据格式:
1. 请求行
请求方式 请求url 请求协议/版本
GET /login.html HTTP/1.1
* 请求方式:
* HTTP协议有7中请求方式,常用的有2种
* GET:
1. 请求参数在请求行中,在url后。
...
二叉树
递归算法模板123456789返回值类型 dfs(参数) { if (终止条件) { 存放结果; return 返回值类型; } 每层递归的逻辑 dfs(下层递归的参数);}
以下代码绝大多数来自于 代码随想录,代码只为个人学习与总结
二叉树的定义 123456789101112public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() {} TreeNode(int val) { this.val = val; } TreeNode(int val, TreeNode left, TreeNode right) { this.val = val; this.left = left; this.right = right; }}
二叉树的遍历递归遍历前序遍历 123 ...
关于如何让大脑保持清醒
循序渐进的接受刺激
循序渐进的接受刺激可以让我们更容易去做困难或者无趣的事情。每天里我们认为更无趣,更艰难的事,先去完成它。
这并不是让我们不去娱乐,而是推迟我们娱乐的时间段。随着时间流逝,我们的意志力逐渐消沉时,这时就可以尽情的放松。
过多的刺激会让我们的大脑变得不清醒,比如我们刷朋友圈,看短视频等等,它让我们轻而易举的获得愉悦的感觉,让我们的大脑分泌多巴胺,肾上腺素,这时,大脑就会关闭我们大脑控制理智的一部分,去专心沉浸在预约之中。而此时,我们也就更难去做更无趣也更为慢节奏的事情了。
如果我们先在游戏或者视频中得到较高的刺激,之后我们再去做更无趣的事时,我们会难以开始或者坚持,宁愿什么也不干也不愿去做。
清空大脑每一件可能的小事,每一件你必须要做的事,每一件你必须承担责任的事,每一件你必须记住的事,去把它们写下来。
当我们忽然想到一些事情(不论任何事情,不管是要做的事,还是脑洞大开忽然想到的事),之后去撇开思绪,专注于眼前时,我们很可能并没有真正忘记那些事情,而是推给我们的潜意识。
当我们对需要注意的事,生活中的琐事等等事情处处留意时,我们很可能把它们都推给了潜意识,事情如果太多, ...
Servlet
Servlet: server applet概念:运行在服务器端的小程序 * Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则。
* 将来我们自定义一个类,实现Servlet接口,复写方法。
快速入门: 1. 创建JavaEE项目
2. 定义一个类,实现Servlet接口
* public class ServletDemo1 implements Servlet
3. 实现接口中的抽象方法
4. 配置Servlet
在web.xml中配置:
<!--配置Servlet -->
<servlet>
<servlet-name>demo1</servlet-name>
<servlet-class>cn.itcast.web.servlet.ServletDemo1</servlet-class>
&l ...
XML与Tomcat
XML:概念:Extensible Markup Language 可扩展标记语言 * 可扩展:标签都是自定义的。 <user> <student>
* 功能
* 存储数据
1. 配置文件
2. 在网络中传输
* xml与html的区别
1. xml标签都是自定义的,html标签是预定义。
2. xml的语法严格,html语法松散
3. xml是存储数据的,html是展示数据
* w3c:万维网联盟
语法: * 基本语法:
1. xml文档的后缀名 .xml
2. xml第一行必须定义为文档声明
3. xml文档中有且仅有一个根标签
4. 属性值必须使用引号(单双都可)引起来
5. 标签必须正确关闭
6. xml标签名称区分大小写
* 快速入门:
<?xml version=' ...