摘要: 一.并发的本质是什么 锁的出现,是为了保证只有一个线程可以在同一时刻访问临界区。加锁过程如下图所示: 使用锁的过程需要搞清楚三个概念:谁调用了锁?锁是什么?锁什么资源? (1)案例一:synchronized修饰非静态方法 1 public class Main { 2 int i; 3 // 修饰 阅读全文
posted @ 2021-02-03 20:57 kozz 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 1.volatile的出现要解决什么问题? 源代码到最终执行指令过程中,包括了多次的指令重排序 (1)编译器重排序 1 //优化前 2 int x = 1; 3 int y = 2; 4 int a1 = x * 1; 5 int b1 = y * 1; 6 int a2 = x * 2; 7 in 阅读全文
posted @ 2021-01-20 13:08 kozz 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 1.方法调用简介 (1)重写与重载 重写: 1.子类对父类方法的重写,方法名相同 2.参数列表必须相同或者子类 3.返回类型必须相同或者子类 4.访问修饰符不能比父类宽泛 5.不能抛出新异常,或者异常类型不能比父类的宽泛 重载: 1.相同的方法名 2.参数列表必须不同 3.返回类型可以不同(不作为评 阅读全文
posted @ 2021-01-06 00:02 kozz 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 一、类加载介绍 (1)加载 根据类的全限定名获取类的二进制流; 将类的静态数据结构转换成运行时数据结构; 生成class文件作为方法区的访问入口(个人理解:加载就是将静态的编译完成的class文件加载到方法区) (2)验证 包括:文件格式验证/元数据验证/字节码验证/符号引用验证 (3)准备 为类变 阅读全文
posted @ 2020-12-09 00:20 kozz 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 一.基本类型介绍 (1)Java中的基本类型 在Java堆中,各基本类型的空间占用为: boolean(1B)、byte(1B)、char(2B)、short (2B)、int(4B)、float(4B)、double(8B)、long(8B) 在64位hotSpot的Java方法栈中,基本类型存储 阅读全文
posted @ 2020-12-08 23:21 kozz 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 一.普通版本的观察者模式 以下是观察者模式的模板,这里就不展开解释了 1 public interface Observer { 2 void print(String msg); 3 } 4 //被观察者1 5 public class ConcreteObserverOne implements 阅读全文
posted @ 2020-11-23 22:57 kozz 阅读(387) 评论(1) 推荐(0) 编辑
摘要: 1.Netty的简单介绍 ① Netty是基于Java NIO的网络应用框架,client-server框架 ② Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过FutureListen 阅读全文
posted @ 2018-10-24 19:10 kozz 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 1.基于调研分析的产品原型 在上一次作业中,我们分析了七款各具特色的云笔记软件,分别列出了他们的长处和短处。并最终作为这一次作业的原型依据。 2.使用的原型设计工具——墨刀 墨刀是一款在线原型设计工具。借助于墨刀,创业者、产品经理及UI/UX设计师能够快速构建移动应用产品原型,并向他人演示。 3.云 阅读全文
posted @ 2018-10-11 22:21 kozz 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 写在前面: 选择云笔记作为这次调研对象,是因为看到一位同学作业里关于iOS场景下面的笔记软件对比。这一下子让我想起自己入坑过的各款云笔记应用,他们基本上都拥有云端存储和多端同步的功能,但同时又都存在着各自的优缺点。本来一开始我只是选择3款具有代表性的应用作比较,但随着调研的深入,才逐渐认识到此类型软 阅读全文
posted @ 2018-09-26 23:40 kozz 阅读(540) 评论(1) 推荐(1) 编辑