1 | public class NotifyTest { |
IO通道的使用
1 | /** |
如何学习一门知识
1 | public class BlockingQueueTest { |
CAS 版本号应用
1 | /** |
hexo使用
新建一篇文章
1
2
3hexo new "博客名称"
hexo new page --path about/me "About me"部署博客
1
2
3
4# 编译
hexo g
# 发布博客
hexo d
启动服务器
1
hexo server
多分类
1
2
3
4
5categories:
- Diary
tags:
- PS3
- Games分类和标签的使用规范
1
2分类:优先级 以领域划分 机器学习 生活 web开发 java系列
标签:语言 读书笔记 代码 总结
java基础
异常 接口和抽象类
接口
接口的变量是默认是public static final
一个类可以实现多个接口
一个类实现接口必须实现接口的所有方法 可以多继承
抽象类
- 抽象可以有自己的变量
- 抽象类可以有自己的方法
- 可以包含静态方法 单继承
- 抽象的方法不需要全部实现 也就是适配器模式
异常
分为运行异常和检查异常
空指针异常 数组越界异常
IO异常 sql 异常
反射
解释:通过类名获得类的方法和属性,它的产生是满足动态编译。
反射有三种方式
forName
l类的class
对象的getClass
序列化
(1)Java序列化就是指把Java对象转换为字节序列的过程
Java反序列化就是指把字节序列恢复为Java对象的过程。
final finally finalize
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
finally是异常处理语句结构的一部分,表示总是执行。
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源
请解释hashCode()和equals()方法有什么联系?
相等的对象必须有相等的hashcode
有相同的hashcode 不一定相等 hash算法会有冲突
泛型擦除
1 | public class Foo { |
报方法签名重复错误
List
、List 擦除后的类型为 List。 List
、List [] 擦除后的类型为 List[]。 List<? extends E>、List<? super E> 擦除后的类型为 List
。 List<T extends Serialzable & Cloneable> 擦除后类型为 List
。 Java 为什么这么处理呢?有以下两个原因:
避免 JVM 的大换血。如果 JVM 将泛型类型延续到运行期,那么到运行期时 JVM 就需要进行大量的重构工作了,提高了运行期的效率。
版本兼容。 在编译期擦除可以更好地支持原生类型(Raw Type)。
明白了 Java 泛型是类型擦除的,下面的问题就很好理解了:
无法声明泛型数组
1 | // 这种报错 |
泛型的理解
要理解泛型首先要立即泛型擦除,java字节码不包含泛型类型信息,使用泛型的时候会变编译器擦除,这个过程就叫泛型擦除。泛型的附加类型JVM是不可见的。它和C++的模板类型是有区别的
泛型是没有.class 对象
声明不同的泛型实例 泛型类只会被加载一次
1
2
3
4ArrayList<String> list1 = new ArrayList<>();
ArrayList<Integer> list2 = new ArrayList<>();
//jvm 只会加载一次ArrayList
泛型的参数类型不能用在java 处理异常中
###
java 死锁代码
1 |
|
Es6 模块的导入和导出
b.js
1 | export function fun(){ |
c.js
1 | let a = 12 |
index.html
1 | <!DOCTYPE html> |
微信小程序原生组件的坑
- style
1 | <scroll-view :style="{'height': '300px'}"></scroll-view>要设置高度 |
- 原生的事件
1 | <scroll-view :style="{'height': '300px'}" :scroll-y="true" @scrolltolower="scrolltolower" @scroll="scroll" > |
pandas基本操作
1. pandas DataFrame对象的创建
1 | dates = pd.date_range('20130101', periods=6) |
2. 操作数据
1 | df.head() |