- 博客(32)
- 收藏
- 关注
原创 java thread 状态转换
new(新建):表示线程被创建但尚未启动的状态,刚创建的线程还没有执行start方法。runnable(运行状态):对应操作系统有ready和running两个状态ready(准备就绪):等待cpu资源running(运行中):获取到cpu资源blocked(阻塞):等待IO完成或者锁释放timed waiting(计时等待): 设置了时间参数的 Thread.sleep(long millis) 方法; 设置了时间参数的 Object.w...
2022-01-02 18:18:58
351
原创 IO多路复用模型之select,poll,epoll
IO多路复用模型有三种模式:select,poll,epollselect:通过进程监控文件描述符(fd)的方式每次selelct把fd从用户空间copy到kernel 然后遍历fd判断文件是否就绪 单个进程操作fd数量默认限制1024poll:poll使用链表保存文件描述符。没有fd数量限制。epoll:epoll提供了三个函数,epoll_create,epoll_ctl和epoll_wait,epoll_create是创建一个epoll句柄;epoll_ctl是注册要监听的事件类型;
2022-01-01 18:20:12
715
原创 IO五种模型
同步阻塞IO(同步阻塞):IO请求发出去后同步等待kernel的返回结果,直到结果返回或者异常。中间用户线程处于阻塞等待状态。默认socket都是阻塞的。 同步非阻塞IO(同步非阻塞):IO请求发出去后,马上得到kernel的返回结果。可能是正确结果,或者是异常。用户线程可以重复请求或者去做其他事情。 多路复用IO(异步阻塞IO):用一个或一组线程处理多个IO操作,Java中的Selector和Linux中的epoll都是这种模型。 信号驱动IO(异步阻塞IO):IO请求发出去后,等待kernel的返
2022-01-01 17:44:22
523
原创 Java IO STREAM
java.io数据传输方式区分字节流(InputStream,OutputStream) 字符流(Reader,Writer) 功能区分 文件流(FileInputStream FileOutputStream FileReader FileWriter) 数组流(ByteArrayInputStream ByteArrayOutputStream CharArrayReader CharArrayWriter)...
2022-01-01 17:14:28
271
原创 AbstractQueuedSynchronizer(AQS)实现排它锁、重入锁、共享锁、公平锁
为了方便写到一起了,有些代码需要简单整理:public class MyAQSLock extends AbstractQueuedSynchronizer { private static final MyAQSLock MY_AQS_LOCK = new MyAQSLock(); private static final AtomicInteger SHARE_LOCK = new AtomicInteger(10); public static void main(St.
2020-11-23 18:34:37
233
原创 数值边界问题
当符号相同的时候,三个数比较:a > c - b的方式,可以得到正确结果。如果符号不相同,需要先比较其中两个数的大小,再决定用加减。
2020-08-19 18:45:07
287
原创 nginx文件上传接口500,服务器没有收到请求,其他接口都没问题
今天调试项目遇到一个问题,找了好长时间开发了一个文件上传接口,通过nginx传入后端。用postman测试接口是没问题的,但是在页面上上传文件,接口一直报错500,感觉莫名其妙。后来查看/usr/local/Cellar/nginx/1.17.9/logs 目录下 nginx日志发现下面错误2020/06/23 14:03:38 [crit] 5525#0: *1 open() "/usr/local/var/run/nginx/client_body_temp/0000000001" failed
2020-06-23 15:17:51
1419
原创 14. 最长公共前缀
14. 最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1:输入: ["flower","flow","flight"]输出: "fl"示例2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母a-z。public String longestCommonPrefix(String[] strs) { if (...
2020-05-15 17:58:55
124
原创 13. 罗马数字转整数
13. 罗马数字转整数罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为X+II。 27 写做XXVII, 即为XX...
2020-05-15 17:47:04
131
原创 12. 整数转罗马数字
12. 整数转罗马数字难度中等328收藏分享切换为英文关注反馈罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为X+II...
2020-05-14 19:49:17
155
原创 11. 盛最多水的容器
11. 盛最多水的容器给你n个非负整数a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画n条垂直线,垂直线i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且n的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为49。示例:输入:[1,8,6,2,...
2020-05-14 18:59:51
164
原创 10. 正则表达式匹配
10. 正则表达式匹配难度困难1141收藏分享切换为英文关注反馈给你一个字符串s和一个字符规律p,请你来实现一个支持'.'和'*'的正则表达式匹配。'.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串s的,而不是部分字符串。说明:s可能为空,且只包含从a-z的小写字母。 p可能为空,且只包含从a-z...
2020-04-30 14:43:05
174
原创 9. 回文数
9. 回文数难度简单1014收藏分享切换为英文关注反馈判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: f...
2020-04-29 19:11:28
176
原创 1095. 山脉数组中查找目标值
1095. 山脉数组中查找目标值难度困难46收藏分享切换为英文关注反馈(这是一个交互式问题)给你一个山脉数组mountainArr,请你返回能够使得mountainArr.get(index)等于target最小的下标index值。如果不存在这样的下标index,就请返回-1。何为山脉数组?如果数组A是一个山脉数组的话,那它满足如下条件:...
2020-04-29 17:51:27
100
原创 8. 字符串转换整数 (atoi)
8. 字符串转换整数 (atoi)难度中等676收藏分享切换为英文关注反馈请你来实现一个atoi函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。 假如第一个非空字符是数字,则直接将其与之后...
2020-04-29 12:16:59
165
原创 7. 整数反转
7. 整数反转难度简单1849收藏分享切换为英文关注反馈给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231, 231...
2020-04-28 20:39:22
109
原创 6. Z 字形变换
6. Z 字形变换难度中等647收藏分享切换为英文关注反馈将一个给定字符串根据给定的行数,以从上往下、从左到右进行Z 字形排列。比如输入字符串为"LEETCODEISHIRING"行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRET...
2020-04-28 20:19:02
123
原创 5. 最长回文子串
5. 最长回文子串给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"class Solution { public String longestPalindrome(String s...
2020-04-27 20:41:37
101
原创 4. 寻找两个有序数组的中位数
4. 寻找两个有序数组的中位数给定两个大小为 m 和 n 的有序数组nums1和nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为O(log(m + n))。你可以假设nums1和nums2不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]n...
2020-04-27 20:38:09
111
原创 3. 无重复字符的最长子串
3. 无重复字符的最长子串难度中等3514收藏分享切换为英文关注反馈给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。class Solution { public int lengthOfLongestSubstring(Strin...
2020-04-27 20:34:10
108
原创 2. 两数相加
2. 两数相加给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 ...
2020-04-27 20:31:44
99
原创 1. 两数之和
1. 两数之和给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]...
2020-04-27 18:55:12
156
原创 Linux配置tomcat开机启动
linux的tmp目录新增文件monitor.sh,内容如下:#!/bin/sh# func:自动监控tomcat并且在异常时执行重启操作# 获取tomcat进程IDTomcatID=$(ps -ef |grep tomcat |grep -w 'apache-tomcat-7.0.90'|grep -v 'grep'|awk '{print $2}')echo $TomcatIDSt...
2019-07-18 17:47:47
105
原创 Redis安装
将redis的压缩包,上传到/usr/local下cd /usr/localtar -zxf redis-3.0.0.tar.gz安装c语言环境yum install gcc-c++编译redis源码cd redis-3.0.0make安装redismake install PREFIX=/usr/local/redis将redis解压之后的源码包中的redis....
2019-07-18 17:38:21
100
原创 Mysql数据库安装
下载tar包安装包下载:https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz将mysql安装到/usr/local/mysql下重命名mv /usr/local/mysql-5.7.25-linux-glibc2.12-x86_64 /usr/local/mysql 移动m...
2019-07-18 17:34:25
96
原创 Nginx安装手册
ROOT用户,安装依赖包 yum -y install gcc gcc-c++ autoconf automakelibtoolmake 下载pre包 cd /usr/local/wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz安装pre包...
2019-07-18 17:25:03
107
原创 Oracle 11g静默安装(详细步骤)
环境准备 root上传Oracle 11g包到服务器/tmp目录,并解压: 文件:linux.x64_11gR2_database_1of2.zip、linux.x64_11gR2_database_2of2.zip 执行解压命令:unzip linux.x64_11gR2_database_1of2.zip && unzip linux.x64_11gR2_datab...
2019-05-14 14:58:41
18595
13
原创 Mybatis读取配置文件编码错误
Caused by: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 2 字节的 UTF-8 序列的字节 2 无效。1、编码问题。重新编码文件。2、文件读取错误。读取xml文件时需要指定文件后缀名,否则可能读取到其他非mybatis文件。另外:mybatis配置文件可以不以xm...
2019-05-13 19:10:45
316
原创 Mybatis插入list对象Mapper模板
oraclebegin<foreach collection="list" separator=";" close=";" item="item"> INSERT INTO CW_GE_USER ( ID, USER_ID, ROLE_ID ) VALUES ( ...
2018-10-22 09:58:12
1275
原创 was8.5.5.9项目部署失败,出现mybatis的jar包异常
项目在was8.5.5.0上部署正常,但是换到was8.5.5.9部署的时候报错:W com.ibm.ws.ecs.internal.scan.context.impl.ScannerContextImpl scanJAR unable to open input stream for resource org/apache/ibatis/javassist/tools/rmi/ObjectN...
2018-09-20 16:31:33
2994
原创 Mybatis的sql配置文件对于参数0的判断处理
在Mybatis的数据库接口层传入参数s=0,在配置文件中用<if test="s != null and s != '' ">语句判断。发现并不能进入,后来跟踪源码发现,在Mybatis的org.apache.ibatis.ognl.OgnlOps.compareWithConversion(Object v1, Object v2)方法中,对比s和空字符串,会把他们转成double...
2018-09-20 14:23:27
787
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人