随笔分类 -  java中级

Java自学-JDBC Hello JDBC
摘要:JDBC基础 JDBC (Java DataBase Connection) 是通过JAVA访问数据库 步骤 1 : 为项目导入mysql jdbc的jar包 访问MySQL数据库需要用到第三方的类,这些第三方的类,都被压缩在一个叫做Jar的文件里。 为了代码能够使用第三方的类,需要为项目导入mys 阅读全文

posted @ 2020-03-12 09:10 半米高峰 阅读(323) 评论(0) 推荐(0)

Java自学-多线程 原子访问
摘要:多线程 原子访问 步骤 1 : 原子性操作概念 所谓的 原子性操作 即不可中断的操作,比如赋值操作 int i = 5; 原子性操作本身是线程安全的 但是 i++ 这个行为,事实上是有3个原子性操作组成的。 步骤 1. 取 i 的值 步骤 2. i + 1 步骤 3. 把新的值赋予i 这三个步骤,每 阅读全文

posted @ 2020-03-08 08:51 半米高峰 阅读(283) 评论(0) 推荐(0)

Java自学-多线程 Lock对象
摘要:多线程 Lock对象 与synchronized类似的,lock也能够达到同步的效果 步骤 1 : 回忆 synchronized 同步的方式 首先回忆一下 synchronized 同步对象的方式 当一个线程占用 synchronized 同步对象,其他线程就不能占用了,直到释放这个同步对象为止 阅读全文

posted @ 2020-03-06 21:32 半米高峰 阅读(270) 评论(0) 推荐(0)

Java自学-多线程 线程池
摘要:Java 如何开发一个自定义线程池 每一个线程的启动和结束都是比较消耗时间和占用资源的。 如果在系统中用到了很多的线程,大量的启动和结束动作会导致系统的性能变卡,响应变慢。 为了解决这个问题,引入线程池这种设计思想。 线程池的模式很像 生产者消费者模式 ,消费的对象是一个一个的能够运行的 任务 步骤 阅读全文

posted @ 2020-03-02 09:48 半米高峰 阅读(335) 评论(0) 推荐(0)

Java自学-多线程 交互
摘要:Java 线程之间的交互 wait和notify 线程之间有 交互通知 的需求,考虑如下情况: 有两个线程,处理同一个英雄。 一个加血,一个减血。 减血的线程,发现血量=1,就停止减血,直到加血的线程为英雄加了血,才可以继续减血 步骤 1 : 不好的解决方式 故意设计减血线程频率更高,盖伦的血量迟早 阅读全文

posted @ 2020-03-01 09:20 半米高峰 阅读(371) 评论(0) 推荐(0)

Java自学-多线程 死锁
摘要:Java 演示多线程死锁 当业务比较复杂,多线程应用里有可能会发生 死锁 步骤 1 : 演示死锁 1. 线程1 首先占有对象1,接着试图占有对象2 2. 线程2 首先占有对象2,接着试图占有对象1 3. 线程1 等待线程2释放对象2 4. 与此同时,线程2等待线程1释放对象1 这样就会。。。一直等待 阅读全文

posted @ 2020-02-29 18:29 半米高峰 阅读(202) 评论(0) 推荐(0)

Java自学-多线程 线程安全的类
摘要:Java常见的线程安全相关的面试题 步骤 1 : HashMap和Hashtable的区别 HashMap和Hashtable都实现了Map接口,都是键值对保存数据的方式 区别1: HashMap可以存放 null Hashtable不能存放null 区别2: HashMap不是线程安全的类 Has 阅读全文

posted @ 2020-02-28 11:13 半米高峰 阅读(308) 评论(0) 推荐(0)

Java自学-多线程 同步synchronized
摘要:Java 多线程同步 synchronized 多线程的同步问题指的是多个线程同时修改一个数据的时候,可能导致的问题 多线程的问题,又叫 Concurrency 问题 步骤 1 : 演示同步问题 假设盖伦有10000滴血,并且在基地里,同时又被对方多个英雄攻击 就是有 多个线程在减少盖伦的hp 同时 阅读全文

posted @ 2020-02-27 21:57 半米高峰 阅读(190) 评论(0) 推荐(0)

Java自学-多线程 常见线程方法
摘要:Java 常见的线程方法 示例 1 : 当前线程暂停 Thread.sleep(1000); 表示当前线程暂停1000毫秒 ,其他线程不受影响 Thread.sleep(1000); 会抛出InterruptedException 中断异常,因为当前线程sleep的时候,有可能被停止,这时就会抛出 阅读全文

posted @ 2020-02-26 17:41 半米高峰 阅读(273) 评论(0) 推荐(0)

Java自学-多线程 启动一个线程
摘要:Java 创建一个线程的三种方式 多线程即在同一时间,可以做多件事情。 创建多线程有3种方式,分别是 继承线程类,实现Runnable接口,匿名类 步骤 1 : 线程概念 首先要理解进程(Processor)和线程(Thread)的区别 进程 :启动一个LOL.exe就叫一个进程。 接着又启动一个D 阅读全文

posted @ 2020-02-25 18:17 半米高峰 阅读(304) 评论(0) 推荐(0)

Java自学-Lambda 聚合操作
摘要:java 集合的聚合操作 步骤 1 : 传统方式与聚合操作方式遍历数据 遍历数据的传统方式就是使用for循环,然后条件判断,最后打印出满足条件的数据 for (Hero h : heros) { if (h.hp 100 && h.damage h.hp 100 && h.damage System 阅读全文

posted @ 2020-02-23 12:17 半米高峰 阅读(314) 评论(0) 推荐(0)

Java自学-Lambda 方法引用
摘要:Lambda 方法引用 步骤 1 : 引用静态方法 首先为TestLambda添加一个静态方法: public static boolean testHero(Hero h) { return h.hp 100 && h.damageh.hp 100 && h.damage TestLambda.t 阅读全文

posted @ 2020-02-20 16:14 半米高峰 阅读(419) 评论(0) 推荐(0)

Java自学-泛型 泛型转型
摘要:Java 中的子类泛型转型成父类泛型 步骤 1 : 对象转型 根据面向对象学习的知识,子类转父类 是一定可以成功的 package generic; import charactor.ADHero; import charactor.Hero; public class TestGeneric { 阅读全文

posted @ 2020-01-22 15:52 半米高峰 阅读(547) 评论(0) 推荐(0)

Java自学-泛型 通配符
摘要:Java 泛型通配符 ? extends super 的用法 示例 1 : ? extends ArrayList heroList 表示这是一个Hero泛型或者其子类泛型 heroList 的泛型可能是Hero heroList 的泛型可能是APHero heroList 的泛型可能是ADHero 阅读全文

posted @ 2020-01-19 21:22 半米高峰 阅读(365) 评论(0) 推荐(0)

Java自学-泛型 支持泛型的类
摘要:Java 如何设计支持泛型的类 步骤 1 : 不支持泛型的Stack 以 Stack栈 为例子,如果不使用泛型 当需要一个只能放Hero的栈的时候,就需要设计一个HeroStack 当需要一个只能放Item的栈的时候,就需要一个ItemStack package generic; import ja 阅读全文

posted @ 2020-01-18 21:02 半米高峰 阅读(185) 评论(0) 推荐(0)

Java自学-泛型 集合中的泛型
摘要:什么是 泛型? 示例 1 : 不使用泛型 不使用泛型带来的问题 ADHero(物理攻击英雄) APHero(魔法攻击英雄)都是Hero的子类 ArrayList 默认接受Object类型的对象,所以所有对象都可以放进ArrayList中 所以get(0) 返回的类型是Object 接着,需要进行强制 阅读全文

posted @ 2020-01-16 19:56 半米高峰 阅读(294) 评论(0) 推荐(0)

Java自学-集合框架 聚合操作
摘要:聚合操作 步骤 1 : 聚合操作 JDK8之后,引入了对集合的聚合操作,可以非常容易的遍历,筛选,比较集合中的元素。 像这样: String name =heros .stream() .sorted((h1,h2) h1.hp h2.hp? 1:1) .skip(2) .map(h h.getNa 阅读全文

posted @ 2020-01-09 19:41 半米高峰 阅读(308) 评论(0) 推荐(0)

Java自学-集合框架 Comparator和Comparable
摘要:Java Comparator和Comparable 步骤 1 : Comparator 假设Hero有三个属性 name,hp,damage 一个集合中放存放10个Hero,通过Collections.sort对这10个进行排序 那么到底是 hp小的放前面?还是damage小的放前面 ?Colle 阅读全文

posted @ 2020-01-06 20:44 半米高峰 阅读(297) 评论(0) 推荐(0)

Java自学-集合框架 hashCode原理
摘要:Java hashCode原理 步骤 1 : List查找的低效率 假设在List中存放着无重复名称,没有顺序的2000000个Hero 要把名字叫做“hero 1000000”的对象找出来 List的做法是对每一个进行挨个遍历,直到找到名字叫做“hero 1000000”的英雄。 最差的情况下,需 阅读全文

posted @ 2020-01-03 15:03 半米高峰 阅读(608) 评论(0) 推荐(0)

Java自学-集合框架 HashSet、LinkedHashSet、TreeSet之间的区别
摘要:HashSet、 LinkedHashSet、TreeSet之间的区别 步骤 1 : HashSet LinkedHashSet TreeSet HashSet: 无序 LinkedHashSet: 按照插入顺序 TreeSet: 从小到大排序 package collection; import 阅读全文

posted @ 2020-01-02 19:51 半米高峰 阅读(302) 评论(0) 推荐(0)

导航