- 博客(17)
- 收藏
- 关注
原创 动态分派之方法重写
写在前面之前了解了静态分派,现在我们在看一下动态分派(好专业的概念,之前我也不知道),虽然不知道动态分派这样的专业名词,但是重写(Override),肯定是用到过的。##代码猜结果public class DynamicTest { static abstract class Car{ protected abstract void driveCar(); } static class Train extends Car{ @Overri
2020-05-28 23:17:03
169
原创 细说Linux下文件删除
回顾之前Linux中删除文件的原理du和df命令统计磁盘空间的区别如何利用proc目录恢复被删除的文件Linux中删除文件的原理Linux中的文件被分为用户数据和文件元数据。Linux中文件数据都存储在块中(常见块的大小是4KB,即连续8个扇区sector组成一个块block),而文件的元数据,例如文件的创建者、文件的创建日期、文件的大小等等,都是存贮在叫做inode区域中的。中文译名索...
2020-04-16 21:30:46
267
原创 Synchronized修饰方法和同步代码块的区别
问题出现Synchronized修饰方法和同步代码块的区别Synchronized修饰方法的底层实现原理Synchronized修饰同步代码块底层实现原理代码验证synchronized用法我们知道可以修饰实例方法,也可以修饰静态方法,还可以使用同步代码块。public class Service { //synchronized修饰实例方法 synchronized...
2020-04-12 18:16:09
1827
原创 静态分派之方法重载
写在前面之前了解了静态分派,现在我们在看一下动态分派(好专业的概念,之前我也不知道),虽然不知道动态分派这样的专业名词,但是重写(Override),肯定是用到过的。代码猜结果public class DynamicTest { static abstract class Car{ protected abstract void driveCar(); } stati...
2020-04-12 18:00:28
238
原创 JVM通过什么判断对象是否可以晋升到老年代
看之前,可以先看看这个。JVM通过什么判断对象是否可以晋升到老年代对象的年龄:在Minor Collection后仍然存活的对象,其经历的Minor Collection次数,就表示该对象的年龄。对象的大小:对象占用的空间大小。当上面两个参数超过系统配置的阈值后,对象晋升到老年代。HotSpot提供了对这些参数进行配置支持。-XX:InitialSurvivorRatio ---- ...
2020-04-12 17:57:33
619
原创 Linux中的软链接和硬链接
问题出现问题1:Linux中软链接和硬链接的区别?问题2:Linux系统内部是通过文件名访问文件的吗?基础铺垫平时在Linux系统中,我们都是通过文件名打开文件。但是Linux系统内部并不使用文件名,而是通过inode即节点索引来识别文件。我们通过文件名打开文件,只是表像。实际系统会按照如下去做。1.系统是先找到这个文件名对应的inode号码,2.通过inode号码获取inode信息,...
2020-01-07 22:28:16
272
原创 java字符串“我是谁”的转码问题
问题出场public static void main(String[] args) throws Exception { String a = "我是谁"; String b=new String(a.getBytes("utf-8"),"gbk"); System.out.println(b); String c=new Str...
2020-01-04 12:28:58
236
原创 Linux中的花括号扩展
实例展示[root@ky35z ~]# echo Front-{A,B,C}-BackFront-A-Back Front-B-Back Front-C-Back花括号扩展的模式信息可以包含一个前导字符(Front)作为开头,包含一个附言(Back)的结尾部分。包含整数输出一系列的整数[root@ky35z ~]# echo Num_{2..10}Num_2 Num_3 Num_...
2019-12-31 22:25:08
499
原创 wc命令统计文本少一行
问题由来昨天在测试的时候,遇到了一个问题,在计算文本文本的行数的时候,直接在linux系统,用的cat file.txt | wc -l 用这个命令统计的,可以结果确比真实的文本少了一行。问题原因wc -l 统计行数:使用换行符”\n”作为行结束标志,实际是统计换行符个数少一行的原因就是因为wc –l是按\n作为行结束符统计行数,所以最后一行如果没有\n的话会统计丢失。windows环境下...
2019-12-29 17:52:51
1254
原创 String字符串的最大长度
开篇三个问题作为Java的程序员,不知道在Java代码中定义了多少个字符串,可是看看下面3个问题。你是否认真思考过?是否动手实践过?1.Java中的字符串String的最大长度是多少?2.Eclipse使用哪种Java编译器?3.为何Eclipse要出自己的编译器?对于字符串可以承受的最大长度,要分为2个阶段,一个是编译时期(也就是你代码定义了一个String字符串,String s= "x...
2019-12-29 14:22:57
1454
原创 使用请求转发导致前端页面css样式消失
这个是由于样式CSS文件路径的问题造成的例: <link href="../Style/AskStyle.css" /> ../ 是返回当前请求地址的上一级目录 ../../ 是返回上一级的上一级你这里是4层,写成…/…/…/…/Style/AskStyle.css就正常访问到了www.askcto.com...
2019-12-29 13:41:28
1011
原创 TCP中的SYN-ACK重传次数的理解
服务器发送完SYN-ACK包,如果未收到客户确认包,服务器进行首次重传,等待一段时间仍未收到客户端确认包,进行第二次重传。如果重传的次数超过系统规定的最大重传次数,系统将该连接信息从半连接队列中删除。注意每次等待的时间不一定相同,一般会是指数增长,列如间隔时间为1s,2s,4s,8s…www.askcto.com...
2019-12-29 13:39:26
2754
原创 TCP的三次握手是否都可以携带数据
第一次和第二次是不可以携带数据的,但是第三次是可以携带数据的。假如第一次握手可以携带数据的话,那对于服务器是不是太危险了,有人如果恶意攻击服务器,每次都在第一次握手中的SYN报文中放入大量数据。而且频繁重复发SYN报文,服务器会花费很多的时间和内存空间去接收这些报文。第三次握手,此时客户端已经处于ESTABLISHED状态。对于客户端来说,他已经建立起连接了,并且已经知道服务器的接收和发送能力...
2019-12-29 13:38:26
4072
转载 HashMap中如何根据key算出元素的存储位置
JDK7中,根据Object类型的key计算出其在数组中的下标位置,HashMap的数据结构是数组+链表。由2个方法hash(Object key)和indexFor(int h,int length)来实现。hash :该方法主要是将Object转换成一个整型。indexFor :该方法主要是将hash生成的整型转换成链表数组中的下标。static int indexFor(int h, ...
2019-12-29 10:48:07
2549
原创 java中的安全失败(fail-safe)机制理解
采用安全失败机制的集合容器,在遍历时不是直接在集合内容上访问的,而是先复制原有集合内容,在拷贝的集合上进行遍历。由于迭代时是对原集合的拷贝进行遍历,所以在遍历过程中对原集合所作的修改并不能被迭代器检测到,所以不会触发Concurrent Modification Exception。缺点:基于拷贝内容的优点是避免了Concurrent Modification Exception,但同样地,迭...
2019-12-29 10:40:06
1163
原创 java中的快速失败(fail-fast)机制的理解
在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加、删除、修改),则会抛出Concurrent Modification Exception。迭代器在遍历时直接访问集合中的内容,并且在遍历过程中使用一个 modCount 变量。集合在被遍历期间如果内容发生变化,就会改变modCount的值。每当迭代器使用hashNext()/next()遍历下一个元素之前,都会检测mo...
2019-12-29 10:38:22
180
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人