- 博客(12)
- 收藏
- 关注
原创 一次线上事故在代码层级的总结
在今天的技术群中发生了一个事故。在此处整理一下。 首先看一下这个异常: java.lang.NullPointerException Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference. 空指针异常,经常出现。但是有的时候,我们在调用 equals 方法的时候,在阿里的 Java 开发手册中有这样的规范: 【强制】Object的equa
2021-12-20 20:09:46
455
1
原创 MySQL 中涉及到创建时间与更新时间如何保存
引言原有表设计问题来了,有没有一种更好的实现方式去完成? 引言 在数据表设计的时候,我们总是想记录这一行数据是什么时候创建的,以及这个数据是什么时候更新的。这个时候,创建时间与更新时间的创建与修改成了我们操作数据的一个拦路虎。有没有什么好的处理创建时间与更新时间的好方案。 原有表设计 在原有表在设计的时候,都会创建2.
2021-09-16 23:05:23
432
原创 Dubbo 搭建一个简单的RPC框架
安装 ZooKeeper brew install zookeeper 安装完成以后启动 zookeeper,如果是通过 homebrew 方式安装的话,直接调用 zkServer start即可。 生产者部分 创建一个 Spring Boot 项目,作为其中的生产者。其中,在 maven 依赖的时候,需要引入以下依赖包。 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/P.
2020-10-07 16:38:54
358
原创 Java 代理模式
什么是代理? 代理模式(Proxy)是通过代理对象访问目标对象,这样可以在目标对象基础上增强额外的功能,如添加权限,访问控制和审计等功能。 什么时候使用代理? 当我们需要在某些方法中额外增加功能但不破坏原有代码结构的情况下就可以使用代理。 如何创建代理对象? 通过 Proxy.newProxyInstance 方法创建 其中,该方法中一共有三个参数: 一个类加载器,如果使用默认的类...
2020-02-17 01:17:28
217
原创 Java Integer 类中 128 陷阱
在 Java 中,基础数据类型与包装类之间的转换是我们经常使用的,但是在一些情况下会出现一些奇怪的事情。看下我们的样例 public class Test { public static void main(String[] *args*) { Integer a = 100; Integer b = 100; System.out.prin...
2019-08-21 18:00:49
991
原创 Java 方法调用顺序
对象在调用对象里面的实例方法的时候,如何执行方法。例:x.doSth(Object o); 编译器先从 x 的本类和其父类的非 private 区域找到所有方法名为 f 的方法。 编译器查看调用此方法时候的参数类型,根据里面的参数类型及数量,匹配出合适的方法执行。这个匹配的过程叫做重载解析。(重载解析的过程有些时候很复杂,因为会涉及到类型的转换,比如 int 转 double,基础数据类型与包装...
2019-08-19 17:03:32
569
原创 通过 idea 创建一个 Java Web 项目及 Servlet 的创建
通过 idea 创建一个 Java Web 项目及 Serverlet 的创建 从欢迎页点击 Create New Project 。 从左边栏中选择 Jave Enterprise ,右边栏当中选择 Web Application 并打钩,下面的 Create web.xml 也打钩,选择 Next。 在 Project name 处设置项目名,Project Location 设置项目保存的...
2019-07-27 19:45:11
607
原创 Tomcat 第一次安装及 idea (based on 2019.2 Ultimate Version) 当中配置(For macOS)
通过 HomeBrew 安装 Tomcat 8 brew install tomcat@8 安装完成以后,先将 Tomcat 添加到环境变量当中(在终端当中执行echo 'export PATH="/usr/local/opt/tomcat@8/bin:$PATH"' >> ~/.bash_profile即可),检查一下 tomcat 是否安装成功并且启动。启动命令brew serv...
2019-07-27 19:24:55
564
原创 UINavigationController 导航控制器
UINavigationController 导航控制器 当程序需要显示具有层次化的界面,帮助我们跳转页面的时候,需要使用UINavigationController 导航控制器的创建及使用 构造方法 1. 通过自定义 NavigationBar 来创建 UINavigationController - (instancetype)initWithNavigationBarClass:(nu...
2019-06-01 16:34:12
244
原创 iOS-Controller 在 pop 或者 push 之前添加点击逻辑
iOS-ControllerPop 在 pop 或者 push 之前添加点击逻辑 最近在写数据库的作业,想要在 NavigationController 弹出之前做一个选择逻辑,但是发现网上的样例都调用了老 API,没有适合新的样例的 API。所以现在想总结一下。 第一个控制器,在中间有一个按钮,点击按钮,进入下一个控制器 第二个控制器,当点击返回的时候,弹出一个警告栏,有两个选项,一个是返回到...
2019-06-01 11:49:19
348
原创 iOS 多线程管理之 NSThread
iOS 多线程管理之 NSThread NSThread 是苹果官方提供的,使用起来比 pthread 更加面向对象,简单易用,可以直接操作线程对象。不过也需要需要程序员自己管理线程的生命周期(主要是创建),我们在开发的过程中偶尔使用 NSThread。比如我们会经常调用 [NSThread currentThread] 来显示当前的进程信息。 构造方法 init 方法 创建一个带有方法体的...
2019-05-04 19:06:47
297
原创 iOS设计模式之观察者模式
由于最近在iOS学习中对观察者模式有些自己的见解,故发博文进行总结。如有错误还请各位指出并海涵。 在这个设计模式下。有至少两组对象–观察者与被观察者。观察者负责观察数据的改变,当被观察者的数据发生改变的时候,观察者就会发现相应的改变,并作出相应的响应。这种模式能够确保界面与数据之间的独立性,降低其中的耦合度。 在通知中,接受通知的相当于一个观察者,发送通知的相当于一个被观察者。当接受通知的人接收...
2018-11-10 20:56:36
200
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅