- 博客(20)
- 收藏
- 关注
原创 线程的安全
什么是线程安全又是一个理论的问题,各式各样的答案有很多,我给出一个个人认为解释地最好的:如果你的代码在多线程下执行和在单线程下执行永远都能获得一样的结果,那么你的代码就是线程安全的。...
2022-08-27 17:40:51
62
原创 ConcurrentModificationException异常出现的原因
ConcurrentModificationException异常出现的原因
2022-08-26 19:45:12
94
原创 死锁的原因和预防
理解了死锁的原因,尤其是产生死锁的四个必要条件,就可以最大可能地避免、预防和解除死锁。所以,在系统设计、进程调度等方面注意如何不让这四个必要条件成立,如何确定资源的合理分配算法,避免进。是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。因此,对资源的分配要给予合理的规划。如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则。:—个进程应占有至少一个资源,并等待另一个资源,而该资源为其他进程所占有。
2022-08-25 14:06:16
103
原创 线程中的run方法和start方法的区别
(03) mythread.start()会启动“线程mythread”,“线程mythread”启动之后,会调用run()方法;此时的run()方法是运行在“线程mythread”上。(02) mythread.run()是在“主线程main”中调用的,该run()方法直接运行在“主线程main”上。而mythread.run()则会直接在当前线程中运行run()方法,并不会启动一个新线程来运行run()。mythread.start()会启动一个新线程,并在新线程中运行run()方法。
2022-08-24 12:46:27
112
原创 final
当用final作用于类的成员变量时,成员变量(注意是类的成员变量,局部变量只 需要保证在使用之前被初始化赋值即可)必须在定义时或者构造器中进行初始化 赋 值,而且final变量一旦被初始化赋值之后,就不能再被赋值了。引用变量被final修饰之后,虽然不能再指向其他对象,但是它指向的对象的 内容是 可变的。
2022-08-23 17:05:54
116
原创 冒泡排序:
所需的关键字比较次数和记录移动次数均达到最小值: Cmin=n-1,Mmin=0 所以,冒泡排序最好的时间复杂度为 O(n)。在这种情况下,比较和移动次数均达到最大值: Cmax=n(n-1)/2=O(n2) Mmax=3n(n-1)/2=O(n2) 冒泡排序的最坏时间复杂度为 O (n2)。比较是相邻的两个元素比较,交换也发生在这两个元素之间。如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。
2022-08-22 20:01:09
61
原创 axure 自学入门教程
12、公式的格式及类型:公式在编辑值/文本的界面中进行编辑,格式为“[[公式内容]]”。9、全局变量设置:全局变量是一个数据容器,就像一个U盘,可以把需要的资料存入,随身携带,在需要的时候读取出来使用。7、设置条件逻辑关系:设置执行一个动作必须同时满足多个条件,或者仅需满足多个条件中的任何一个,需要在添加条件的界面中进行设置。4、设置页面颜色(草图/黑白):在页面的【样式】中,可以将当前页面的显示为草图效果,同时可以将页面颜色在彩色与黑白之间转换。2、设置页面居中:在页面【样式】设置中选择页面居中的按钮。
2022-08-22 19:04:50
688
原创 常见HTTP状态码
(未修改):自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内。(服务器错误):表示服务器在尝试处理请求时发生内部错误。(错误):表示请求可能出错,妨碍了服务器的处理。(重定向):表示要完成请求需要进一步操作。(未找到):服务器找不到请求的网页。(未授权):请求要求身份验证。(禁止):服务器拒绝请求。
2022-08-21 18:13:26
69
原创 接口和抽象类
实体类通过 implements 关键字实现接口,实现接口要实现接口中所有的方法 不能被实例化。定义:从子类中发现了公共的东西,泛化出父类,然后子类继承父类,一个抽象类型,一般以 interface 来声明。java 中的接口指的是抽象方法的集合,接口是可以多继承的,类只能单继承。三:抽象类和接口的区别。
2022-08-19 13:44:20
79
原创 String ,StringBuffer和StringBuilder的区别
StringBuffer和StringBuilder的默认初始容量是16,有不可变性(例子: String a;连接效率和StringBuffer一样高于String。可以提前预估好字符串的长度,进一步减少扩容带来的额外开销。StringBuilder:变长字符串。StringBuffer:变长字符串。String :固定长度的字符串。适合操作大量数据,但是线程不安全。有利于常量池中的数据的复用。适合操作少量数据和不操作。由char 和数组组成。由char和数组形成。由char和数组形成。...
2022-08-18 12:36:27
74
原创 java 中 = ,==,===的区别
=:让两边的值进行比较,如果两边数据类型不一样,先会进行转换,再进行比较,相同返回 true, 不同 返回 false.(两边都是对象时还是 false) 根据以下规则:如果两个值类型相同,进行 === 比较。4:如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。1:如果两个都是数值,并且是同一个值,那么 [相等];5:如果两个值都是 null,或者都是 undefined,那么 [相等]。3:如果两个值都是 true,或者都是 false,那么 [相等]。...
2022-08-17 13:52:51
393
原创 重写和重载
构造方法的重载:只需要看参数即可,如果想在一个构造方法中调用另一个构造方法,那么可以使用 this () 的方 法调用,this () 括号中的参数表示目标构造方法的参数,this () 必须要作为构造方法的第一跳语句,换句话说,this () 之前 不能有任何可执行的代码。重写(override) 重写方法的方法名和方法参数(参数数量,参数类型)必须完全一致。而在 1.5 版本之后,java 放宽了这一要求,重写方法的返回值类型比原方法的返回值类。重写方法抛出的异常,不能大于原方法抛出的异常。......
2022-08-16 21:34:03
140
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人