上一页 1 ··· 4 5 6 7 8 9 10 下一页
摘要: IDEA快捷键 全屏编写代码:Ctrl+Shift+F12 快速解决错误:Alt+Enter 在包下创建类的快捷键 鼠标悬浮在包前按住 Alt + Insert 阅读全文
posted @ 2020-04-17 21:11 li33的博客 阅读(117) 评论(0) 推荐(1) 编辑
摘要: CopyOnWriteArrayList是线程安全的集合。本身就是安全的,同时只能被一个进程所访问。 属于JUC并发编程里面的内容。 阅读全文
posted @ 2020-04-17 13:10 li33的博客 阅读(405) 评论(0) 推荐(0) 编辑
摘要: 上锁,根据操作系统所说的原则,对共享变量上锁,对临界区上锁。谁访问临界资源?就给谁上锁 同步监视器,它上锁的对象。 1.用关键字给方法上锁 2.用synchronized代码块上锁 默认上锁对象:this,指向自身。就是调用这个方法的对象,给他上锁。 安全的买票(给方法上锁) 阅读全文
posted @ 2020-04-17 12:56 li33的博客 阅读(126) 评论(0) 推荐(1) 编辑
摘要: 线程同步 队列加锁synchronized是实现同步的必要条件。 优先级低的拿到锁,高的没拿到。性能倒置,效率极差 不安全的买票代码实现 阅读全文
posted @ 2020-04-17 10:33 li33的博客 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 守护线程 线程分为用户线程和守护线程 虚拟机必须确保用户线程的结束 虚拟机不必等待守护线程的结束 垃圾回收,监控回收等就是一个守护线程。(相当于学校的门卫,他必须确保学校里面没人了才会关门) 阅读全文
posted @ 2020-04-17 09:42 li33的博客 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 线程 停止线程 比较好的方法 1.不要使用JDK已经废弃的stop()等方法。 2.设置外部标志位,控制线程运行,理论上是让他自己停止 3.让他自己停下来 阅读全文
posted @ 2020-04-16 23:23 li33的博客 阅读(93) 评论(0) 推荐(1) 编辑
摘要: 1.实现Runnable,Callable Callable接口里定义的方法有返回值,可以声明抛出异常。 继承Callable接口实现线程 因此可以将实现Runnable接口和实现Callable接口归为一种方式。这种方式与继承Thread方式之间的主要差别如下。 1.采用实现Runnable、Ca 阅读全文
posted @ 2020-04-16 20:33 li33的博客 阅读(456) 评论(0) 推荐(0) 编辑
摘要: lambda表达式(jdk8特性) 1.为什么要用lambda表达式 原因:因为我们有时候需要用到很多类,但是,这些类我们只用一次或者两次,所以我们用匿名内部类,但是匿名内部类多了还是很麻烦,所以用lambda表达式再次简化这种简单类 让代码更加简洁,避免很多无意义的语句 函数式接口的定义? lam 阅读全文
posted @ 2020-04-16 19:51 li33的博客 阅读(946) 评论(0) 推荐(0) 编辑
摘要: 自定义异常 异常使用的经验 合理的使用逻辑去避免异常,同时辅助try catch处理 (稳如老狗) 多个catch使用的时候,最末尾加上catch Exception防止遗漏 (赶尽杀绝) 不确定是否会产生异常的代码,也用try catch (宁杀错,不放过) 尽量去处理异常,而不是甩锅给别人。 ( 阅读全文
posted @ 2020-04-16 15:52 li33的博客 阅读(115) 评论(0) 推荐(1) 编辑
摘要: 异常 异常分类 Throwable是祖宗,Error和Exception都是它的子类。 Error是很严重的问题,一旦出现一定要解决,常见的是IOError,StackOverflowError Exception是无法避免的,但是我们可以再可能发生异常的地方捕获异常 异常被捕获了之后程序还能继续运 阅读全文
posted @ 2020-04-16 14:21 li33的博客 阅读(147) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 下一页