自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(183)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java file类的getAbsoluteFile和getCanonicalFile的一些问题和解答

先上总结总结:getAbsoluteFile和getCanonicalFile,就是,各自分别用各自的getAbsolutePath和getCanonicalPath的返回值当作新new file 的构造参数,然后将这个新new 的file对象作为方法的返回值。刚开始看到这个方法,就是一脸懵逼,对就是一脸懵逼,这到底是啥,都是返回的file对象,并且指向的都是同一个抽象路径的对象,然后我就有了一个奇妙的想法,在我刚搞明白getPath,getAbsolutePath,getCanonicalPath

2020-09-01 11:12:39 955

原创 java file类的getPath和getAbsolutePath和getCanonicalPath 的疑问与解答

学到file类之后,发现竟然有这么多获取path的方法,但是这些方法又各自都返回什么呢,各种有什么区别呢?返回的值有什么区别呢?有疑问咱就动手敲代码实现来观察结果,看看区别。然后就尴尬了,结果是三个方法的返回值完全一模一样之后我查阅资料,但是都找不到问题所在,这个问题好像关心的人很少,没有这类解答。于是我就去看汉化jdk发现根本读不懂,感觉就是给懂的人读的,然后我硬着头皮去看了看英文版的jdk,发现了其中的奥妙所在。首先getPath和getAbsolutePath做比较,他们的.

2020-09-01 00:57:46 957

原创 手写tomcat第一天

持续更新

2020-08-30 15:27:14 915 2

原创 java多线程的6种线程状态以及这6种状态间的转换关系,是怎么转换的,转换时发生了什么[面试必备]

线条1new 线程 进入NEW ,start之后进入RUNNABLE线条2获取了锁的线程执行wait,线程从RUNNABLE–>WAITING线程被打断 interrupt成功争夺到锁资源 WAITING–> RUNNABLE没有争夺到锁资源 WAITING–> RUNNABLE–>BLOCKED线程被notify之后成功争夺到锁资源 WAITING–> RUNNABLE没有争夺到锁资源 WAITING–> RUNNABLE–>..

2020-08-21 00:32:20 935

原创 Java LockSupport.park& LockSupport.unpack 为什么可以先unpark原理解析(图解,生动形象例子解释)

每个线程都有自己的一个Park对象,由三个部分组成_count,_cond,和_mux打个比喻线程就像是一个程序员(这个程序员,有烟才会敲代码,没烟就睡觉)_cond是程序员睡觉的地方(没有烟,程序员就不敲代码了,就会跑这里睡觉)_counter是烟存放的地方(0表示没有烟了,1表示有烟)_mutex 互斥锁现在列举不同状态这些变量的变化以及线程的运行状态正常线程没有执行过unpark(此时_counter=0,程序员嘴里叼着烟),park方法执行后,程序员会立刻将烟吸完然后去睡觉。..

2020-08-19 12:20:04 1115

原创 java并发多线程,为什么每个线程都是先加后减,会出现多减情况呢?⚠️做图从cup时间片角度解释

⚠️注意因为,t1线程在添加元素时,会先读取地址,再添加,这时,读取地址完,没有添加就失去cup时间片,这是就会产生并发错误(t2线程也读取同样的地址让后t1,t2添加到同一个位置所以造成多删的情况)public static void main(String[] args) throws CloneNotSupportedException { Unsafe unsafe = new Unsafe(); Thread t1=new Thread(()->{

2020-08-15 12:01:39 993

原创 解题思路:对 n 个互不相同的符号进行哈夫曼编码。若生成的哈夫曼树共有 115 个结点,则 n 的值是:

题目:对 n 个互不相同的符号进行哈夫曼编码。若生成的哈夫曼树共有 115 个结点,则 n 的值是:(2分)A.56B.57C.58D.60作者: 考研真题答案:C解题思路:哈夫曼树的特点性质:(节点为的度数为0 表示 n0,以此类推)①哈夫曼树中只存在度为2和度为0的节点,及n1=0。②哈夫曼树中,度为0和度为2的节点关系:n2=n0-1由以上两个性质,本题就很好解出答案:n0+n2=115 =>n0+n0-1=115 =>n0=(115+1)/2=58

2020-06-10 20:30:22 3775 1

原创 git 学习记录

git initgit add .git commit -m “xxxxx”git statusgit loggit refloggit reset–hard–mixed–softgit checkout -b xxxxnamegit branchgit merge branchName

2020-11-16 16:35:54 9

原创 dockerfile CMD有关的一个疑问

CMD [“ls”,"-al"]等同于CMD ls -al即 “ls”,"-al"这个就代表分隔开

2020-11-06 20:52:57 12

原创 docker --volumes-from 的一些疑问以及解答

我是通过尚硅谷分享的docker视频学的,老师讲–volumes-from可能举例对我来说不太好,让我产生了很多疑惑。疑惑:/- -volumes-from 是共享什么的?共享对象是什么?什么作用?经过我的猜测和实践:首先1. /- -volumes-from分享的对象是容器的数据卷2.两个容器可以是不同的镜像docker run -it --name b --volumes-from a imagesName这个语句:b容器能够共享a容器的数据卷,但是a容器不能共享b的数据卷。.

2020-11-06 11:00:10 17

原创 docker redis的配置文件 redis.conf 的坑

前提:docker redis默认镜像是没有redis.conf文件的,官方也说明了。 如果需要redis.conf可通过本地映射的方式来实现1.首先在自己电脑上指定一个文件目录来存放本地的redis.conf。(这里我将redis.conf放到了. /user/docker/redis/conf/redis.conf)2.执行下面命令:(这里可能会报错,就是找不到本机电脑上的文件,这里是因为docker隔离了本机文件,百度下,可以解决这个问题。)docker run -d --privile.

2020-11-03 11:37:03 183

原创 redis.conf 文件内容在此

#redis.conf# Redis configuration file example.# ./redis-server /path/to/redis.conf################################## INCLUDES ####################################这在你有标准配置模板但是每个redis服务器又需要个性设置的时候很有用。# include /path/to/local.conf# include /path/to/oth

2020-11-03 11:25:29 42

原创 linux挂载

概念1:文件夹本质是一个索引表概念2:挂载本质就是将一个文件夹设置为只能有一个,指向被挂设备,的索引的索引表。注意,这个文件夹,成为挂载点。挂载点,在挂载前,其最好是一个空文件夹,否则,里面的文件会丢失,(直接失去索引,导致这些文件丢失并且无法找到,并不是删除了。)。...

2020-10-30 17:06:34 118

原创 redis学习记录

keys *selectgetsetDBSIZEFLUSHDBFLUSHALLredis中一个string类型字符串最大支持512MBredis 键(key)有关的操作keys *exists keyNamemove keyName dbNameexpire keyName n(秒)。给特定key一个生命时间当生命时间没用完时,可以从新赋予新的生命时间ttl keyName 查看特定key剩余的生命时间type keyNameredis 字符串(St.

2020-10-29 21:02:38 155

原创 docker 安装redis并连接使用该redis

zhoumatoMBP:~ zhou$ docker pull redisUsing default tag: latestlatest: Pulling from library/redisbe8881be8156: Pull complete d6f5ea773ca3: Pull complete 735cc65c0db4: Pull complete 787dddf99946: Pull complete 0733799a7c0a: Pull complete 6d250f04811

2020-10-29 17:31:51 163 1

原创 docker容器存在形式,是一个主体读取不同的配置文件和存储信息的文件,还是怎么样的?docker容器关闭后这个容器还存在吗?

docker容器存在形式,是一个主体读取不同的配置文件和存储信息的文件,还是怎么样的?docker容器关闭后这个容器还存在吗?

2020-10-29 17:03:46 146

原创 docker机制

docker容器想要后台运行,就必须要有一个前台进程。否则该容器会自动退出

2020-10-29 17:03:33 140

原创 常识

全量扫描IO:例如查找数组里面是否存在某一数据,需要遍历整个数组秒、毫秒、微妙、纳秒硬盘:带宽(吞吐量)寻址时间分治mysql等数据库:表如果越来越大,增删改查会怎么改变?增删改查可以分为两类:读:查写:增删改对于读:只要有索引,并且是单一访问,速度几乎不会改变。如果并发很大:对于写,一定会改变。原因:mysql等数据库的数据存储是先分治再通过索引,数据再多,有索引的情况下,查询都是一样的。但是写,会设计到索引的改变,所以会导致速度变慢。硬盘是计算机运行速度的.

2020-10-29 17:02:26 139

原创 docker创建mysql并连接

docker run --name mysql-service -v /user/docker_mysql:/var/lib/mysql -p 3306:3306 -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

2020-10-28 21:17:41 160

原创 java jvm虚拟机 程序计数器注意点

1.如果线程正在执行的是一个java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址2.如果正在执行的是 Native方法,这个计数器值则为空(Undefined),此内存区域是 唯一一个 在java 虚拟机规范中没有规定任何OutOfMemoryError情况区域。具体为什么呢?...

2020-10-13 10:29:09 237

原创 为什么要配置JAVA_HOME,有什么用?谁在用JAVA_HOME

环境变量:(索引, 索引操作系统中特定文件地址,JAVA_HOME就是索引java文件地址的)我们可以把操作系统当成一个软件,我们的应用程序看成操作系统中的一个方法一个函数。环境变量,就相当于 操作系统的全局变量。环境变量语法形式:xxx:aaa;bbb;cccxxx:环境变量的变量名aaa,bbb,ccc都是xxx的值(xxx可以有多个值)JAVA_HOME 是个变量名这样一来,配置JAVA_HOME的作用就很清楚了吧。JAVA_HOME就是索引java文件地址的。.

2020-10-09 10:29:41 513 1

原创 java main方法的参数有什么用

先上用例:main方法的参数作用:参数String[ ] args的作用就是可以在main方法运行前将参数传入main方法中。(这个作用,完全可以通过配置文件来取代。)特点:1.传入n个参数,args就是长度为n的字符串数组。2.当传入参数为0个时,即没有传参数时,args 是 null还是长度为0的字符串数组呢?上图测试结果表明,是长度为0的字符串数组。用法:...

2020-10-08 15:13:27 421

原创 java tomcat 和 servlet 和 javaee 之间的对应版本

2020-10-06 19:09:34 420

原创 Spring Springmvc整合后项目有关两个ioc容器的问题

Spring SpringMVC整合后项目其实存在两个ioc容器这两个容器的特点:spring和springMVC的容器的关系:spring 容器称为父容器springMVC 容器称为子容器外界不能直接访问父容器bean,只能访问子容器bean。父容器不能访问子容器bean。子容器能够访问父容器bean。...

2020-10-06 19:01:22 441

原创 Java jdbc快速入门

1.首先:jdbc所需要的maven依赖2.java获取到数据库的连接.jdbc工具类public final class jdbcUtil { private static final String URL = "jdbc:mysql://120.25.227.234:3306/user?useSSL=false"; private static final String USER = "user"; private static final String PASSWOR

2020-10-06 17:10:20 627 5

原创 java 学习jdbc需要的maven依赖

<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version></dependency>

2020-10-06 16:55:25 473

原创 linux实时监控日志信息

tail -f xxx.txt说明:监视 filename 文件的尾部内容(默认 最初显示文档最后10 行内容),当文档末尾有新的日志被记录下来,会自动将新添加的内容刷新显示在屏幕上。退出:按下 CTRL+C。tail -nf xxx.txt与上面一条不同的是:最初显示文档最后n 行内容...

2020-10-06 08:01:50 453 1

原创 linux 查看文本指定范围行

查看文本最后n行(10行)tail -n 10 xxx.txt查看文本n行后的内容tail -n +100 xxx.txt

2020-10-05 21:33:06 465

原创 linux查看文本文件的行数

wc -l xxx.txt

2020-10-05 20:44:42 485

转载 QPS是什么?如何计算?

1.QPS说明:QPS即每秒查询率,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。2.每秒查询率因特网上,经常用每秒查询率来衡量域名系统服务器的机器的性能,即为QPS。对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力。3.计算关系:QPS = 并发量 / 平均响应时间并发量 = QPS * 平均响应时间**4.原理:**每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间。公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) =

2020-10-03 23:30:51 606

原创 正则表达式 零宽断言

零宽断言:当我们要获取这个字符串中的 “</span class=“name” id=“is-like-span”>已赞” “is-llike-span”时,我们怎么匹配呢?我一般喜欢用内容的开头和结尾来匹配到我想要的内容,但是我又不想要开头和结尾,因为这并不是我想要的。所以这时零宽断言,就来满足这个需求的。先上这个需求的实现:(?<=id//=//")*(?=//"//>)语法:注:以下exp都代表正则表达式。(?=exp) 以exp结尾(?<.

2020-09-26 09:49:36 752

原创 Mac 一键解决 一键安装brew -bash: brew: command not found

安装:/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"全程不用参与。真的爽!卸载:/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh)"

2020-09-25 21:01:53 785

原创 idea打的jar包 运行报 “XXX中没有主清单属性”错误,的解决方案

这个问题,我只找到了解决方法,原理还在找。这个地址是默认的,要把后面的/main/java去掉,就可以解决问题。我的是这个样解决的。这样的就可以正常运行了,至于为什么idea要默认个错误的地址,我现在正在找原因。知道的大佬留个言。谢谢????...

2020-09-25 20:12:58 764

原创 Gradle 打jar包报错xxx.jar中没有主清单属性 解决方案

最简单的解决方案:使用shadowJar插件来打包。注意⚠️:‘Main-Class’:‘xxx’ x x x:程序的主类,也就是main方法所在的类。配置好后。输入Gradle shad 回车即可。这样打出的jar包就是可以运行的没有问题的jar包了。...

2020-09-25 12:37:22 1045

原创 linux 运行jar 后台运行jar 如何查看后台运行的jar 终止后台运行的jar

运行jarjava -jar xxx.jar这种方式运行jar 终止jar运行方式:1、ctr+c2、关闭窗口就可以停止运行该jar后台运行jarjava -jar xxx.jar && 代表后台运行这种方式运行jar 终止jar运行方式:1、关闭窗口2、通过命令终止jar程序的运行(文末方法)后台运行,并打印日志到默认文件nohup java -jar xxx.jar &nohup代表程序后台运行,程序日志会输出到当前目录下的nohup.o.

2020-09-25 10:55:22 914

转载 Mac上传文件到Linux

转载自:https://www.jianshu.com/p/1afd25e7459d1、 打开终端,选择2、选择安全文件传输,输入连接主机IP3、输入主机名4.输入yes,然后输入主机密码,按回车结束5、连接成功,上传文件⚠️注意:这里的文件夹相对目录 /xxx/xxx 相对于app Mojave6、linux主机下查看文件...

2020-09-24 09:10:12 810

原创 HttpsURLConnection 如何设置COOKIE

HttpsURLConnection 添加设置request请求头部的信息都方式都是一样的,都是通过setRequestProperty()方法实现

2020-09-23 12:55:47 820

原创 java 如何获取set元素

解决方法之一:将Set转成ArrayList在使用get()方法持续更新,一起变强

2020-09-23 11:19:27 986

原创 Java Stream 对Collections groupBy 和 partitionningBy 的扩展

两个方法的第二个参数的扩展。Collections.counting()Collections.summingInt()

2020-09-20 10:05:36 868

转载 Java8的Stream API使用详解

转载自:https://www.cnblogs.com/jimoer/p/10995574.html前言这次想介绍一下Java Stream的API使用,最近在做一个新的项目,然后终于可以从老项目的祖传代码坑里跳出来了。项目用公司自己的框架搭建完成后,我就想着把JDK版本也升级一下吧(之前的项目,最高就能用JDK7),但是后来发现公司的项目部署打包平台最高只支持到JDK8。那好吧,既然就支持到JDK8,也能满足日常需求了(要啥自行车),升级到JDK8后,在搭建完项目架构后,就开始写一些基础逻辑。其中.

2020-09-19 11:43:49 875

java-jdk-8.0.zip

这是java-jdk-8.0的版本,比官方要下载的快,下载官方需要注册才能下载,比较麻烦,所以我给不想注册的同学分享这个。

2020-06-11

空空如也

空空如也

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

TA关注的人 TA的粉丝

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