开发 不重要备忘录 - 杂
对于用blob格式存储在数据库中的数据,在各层怎样传输?
- dto - JSONArray
- service - JSONArray.toString().getBytes()
- dao - byte[]
- MySQL - blob/longblob
- dao - byte[]
- service - JSONUtill.parseArray(new String(bytes))
- vo - JSONArray
线程活锁 线程主动将资源释放,资源不断地在两个或多个线程间跳动
接口中如何定义常量 public static final 数据类型 常量名称 = 数据值;
linux 命令 - 服务
- top 查看进程状态 使用内存 CPU状况
- jps 查看java进程,比如 jps -lvm
- jmap -heap 查看堆信息
- jinfo -flags 查看所有JVM参数
- jstat -gcutil 垃圾回收统计
- gzip 解压 -d 解压并删除源文件
return 关键字 作用 结束当前方法,返回值返给调用处
java net *包中的 Socket和ServerSocket: 本质属于同步阻塞IO
MVC:模型(model) 视图(view) 控制器(controller)
一个Nginx大约能支撑,5万并发
PING 命令的作用:测试网络中主机之间的 连通性和网络延迟
IP地址 作用:网络中设备的唯一标识
表必备三字段 - id
- 主键,类型为 unsigned bigint
- 单表时自增、 步长为 1
数据库规约 字段名有什么要求?
- 必须使用小写字母或数字
- 禁止 数字开头
- 禁止 两个下划线中间只出现数字
数据库中 任何字段如果为非负数,类型必须是 unsigned
构造代码块
- 位置: 类中方法外
- 特点: 每次构造方法执行时,都会执行,且比构造方法执先执行
- 作用: 将多个构造方法中相同的代码,抽取到构造代码块中,提高代码复用性
构造方法
- 特点: 名字与类名相同, 没有返回值, 创建对象时自动执行
- 调用方式1: 其它构造方法中, this()调用
- 调用方式2: 子类, super()调用
- 调用方式3: 反射中, newInstance()调用
tid / lwp: 线程ID
pid: 进程ID
cookie与session区别
- cookie数据存放在客户端上, session数据放在服务器上, session安全性比cookie更高
- Cookie有怎样的大小,个数限制? session无此限制
- 当访问增多,session占用服务器性能
SPI 原理:将接口的实现类放在配置文件中,运行过程中读取配置文件 通过反射加载实现类。
锁的作用域 从锁被获取到其被释放的时间
如何选用Map集合 需要排序时选择 TreeMap, 不需要排序时就选择 HashMap, 需要保证线程安全就选用 ConcurrentHashMap。
Oracle JDK 和 OpenJDK 的对比
- Oracle JDK 版本构建过程 基于 OpenJDK - 构建
- 开源: OpenJDK 是参考模型并且是完全开源的, Oracle JDK 是 OpenJDK 的一个实现,并不是完全开源
- Oracle 相比之下的优点: 更稳定(更多的类和错误修复) 更好的 响应性能、JVM 性能
守护线程
- 如何创建: 在调用start()方法前,调用setDaemon(true)把该线程标记为守护线程
- 作用: 守护用户线程, 服务其他用户线程
- 当用户线程全部执行完结束之后,守护线程才会跟着结束。
- 当运行的线程都是守护线程时,Java虚拟机将退出
- 比如JVM的垃圾清理线程就是守护线程
密钥交换算法
- 原理: 双方各自数据A B, 根据公钥G生成AG BG 相互发送, 再各自生成ABG即可共享数据
- 本质: 利用了 A + G -> AG这个运算的不可逆性
- 中间人攻击问题 含义: 由于无法核实对方身份, 第三方可同时冒充数据交换双方, 分别与双方共享信息
- 中间人攻击问题 解决: 使用用私钥加密数据作为数字签名, 核实对方身份
对称加密
- 含义: 密钥只有一个,加密解密使用同一个密码
- 对称加密算法有DES、AES
- 密钥配送问题 含义: 发送方必须把密钥发送给接收方
- 密钥配送问题 解决: DH密钥交换算法 或 非对称加密算法
非对称加密
- 含义: 密钥成对出现, 加密解密使用不同密钥
- 比如: 发送方将原始数据用公钥加密 接收方用私钥进行解密
- 特点: 相对于 对称加密速度较慢
- 非对称加密算法有RSA、DSA
单元测试的 BCDE 原则
- Border ,边界值测试, 包括循环边界、特殊取值
- Correct ,正确的输入,并得到预期的结果。
- Design ,与设计文档相结合,来编写单元测试。
- Error ,强制错误信息输入(如非法数据),并得到预期的结果。
JPA
- 规范了POJO持久化开发的统一API
- 符合JPA规范的开发可以无缝更换框架
请求转发
- 作用: 一次请求中 实现在两个资源之间共享数据
- 使用场景1: 登录失败以后, 请求转发到登录页面
- 使用场景2: 查询商品, 转到页面显示
请求转发和重定向 比较
- 共同点: 借助其他 Servlet 来实现客户端请求
- 请求转发只有一次, 重定向两次请求两次响应
- 请求转发只能访问项目内部资源, 重定向可以访问任意网站
- 重定向浏览器地址栏发生了改变,请求转发不会
分层领域模型规约 - DO
- Data Object
- 与数据库表结构一一对应
- 通过 DAO 层向上传输数据源对象
如何防止表单重复提交
- 数据库主键唯一
- 提交成功后重定向
- 使用JavaScript标记位,提交后隐藏或不可用提交按钮
找出哪些文章是热点文章进行针对性的推荐,如何进行准备?
- “埋点”:对特定用户行为或事件进行捕获、处理
- 比如用户某个icon点击次数、阅读文章的时长,观看视频的时长等等
CDN
- Content Delivery Network 内容分发网络
- 含义: 将用户的请求重新导向到离用户最近的服务节点上
- 作用: 降低网络拥塞,提高用户访问响应速度和命中率。
跳转控制语句
- 有哪些:break continue return
break 关键字
- 跳出上一层循环,结束当前循环
- 只能在循环和switch中进行使用
continue 关键字
- 跳过本次循环,继续下次循环
- 只能在循环中进行使用
Enumeration 接口
- 与 Iterator 接口作用类似
- 仅支持 Vector 和 Hashtable 集合
- 不支持移除操作 速度快但安全性低
instanceof
- 作用1:给引用变量做类型的校验
- 作用2:判断向下转型的类型是否是目标类型
地理位置信息在什么情况下如何保存?
客户端检测用户的地理位置,当变化大于500米时或每隔5分钟 向服务端发送地理位置。
对象的相等 与 指向他们的引用相等, 有什么不同?
- 对象的相等,比较的是 内存中存放的内容是否相等
- 引用相等,比较的是 指向的内存地址是否相等

浙公网安备 33010602011771号