1 Ch.yang

尚未进行身份认证

try{ coding } catch { bug } finally { taking notes }

等级
TA的排名 7w+

【MySQL】不同时区如何解析timestamp, 较datetime、date、time的区别

时间戳的定义时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。通俗的讲, 时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。系统时间2019-11-29 10:00:15带时区的系统时间2019-11-29 10:00:15 UTC+8:00系统时间的格林威治时间 —— 时间戳(Timestamp)2019-1...

2019-11-29 15:59:30

【java_多线程】多线程核心问题

有多少种实现线程的方法?思路有5点摆明立场从不同的角度看,会有不同的答案我认为本质上都是实现Runnable 和继承Thread举出例子线程池的Worker 本质上是一个线程安全的RunnableFutureTask 是使用Future接口拓展的一个RunnableTimerTask 也是一个Runnable一个线程两次调用start()方法会出现什么情况?为什么会抛出异常...

2019-11-17 21:29:07

【java_多线程】模拟银行转账,为保证原子性而引发死锁,检测死锁并解决

前言本例子不是实际的生产模型,只是为了更好研究死锁而举的例子需求james 转账给 jay 20 元,需要保证转账过程原子性操作能加锁的前提每个对象都有一个monitor,用于维护自身的锁状态,换句话说,所有对象都可以作为一把锁每个用户的monitor就可以作为一把锁,并且这把锁是互斥的,暂且称作读写锁用加锁实现原子性锁规则每个用户都持有账户的一把读写锁,可以自己持有,也可以被...

2019-11-22 17:54:16

【java_基础深入】ThreadPoolExecutor.execute() 源码分析

第一层:初见阻塞队列BlockingQueue、任务载入方法Worker.addWorker()思考:corePoolSize BlockingQueue 如何直接参与调度出现了的Worker是什么为什么没有出现maximumPoolSize public void execute(Runnable command) { //线程池指标: 获取线程池状态 + 活跃线程数 (使用二...

2019-11-16 22:17:50

【Debug笔记】idea设置代码模板,如psvm

https://blog.csdn.net/hehe1006114318/article/details/80456321

2019-11-08 16:39:04

【Debug笔记】idea创建Maven项目时统一jdk版本

处理的问题Target bytecode version 每次创建都为1.8修改Maven setting 配置定位配置路径增加 profiles 属性<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xm...

2019-11-08 16:28:19

【java_多线程】让线程阻塞,获取其他线程的返回值 ,使用AQS组件实现

1. 传统方式 Thread.join() /** * 使用传统方式启动线程,执行任务,实现阻塞 * * @see Thread#join() * */ public static void main(String[] args) { Thread thread = new Thread(new Runnable() {...

2019-10-29 19:42:39

【nginx】Linux上安装nginx,开放端口并部署静态网页

安装环境安装gcc,期间有提示,一律选y[root@james nginx]#yum install gcc-c++安装Nginx依赖环境,-y表示所有提示默认选择y[root@james nginx]#yum -y install pcre pcre-devel [root@james nginx]#yum -y install zlib zlib-devel [root@ja...

2019-10-27 19:46:00

【Linux】用户组、用户操作

Linux与用户相关的目录结构​ /:根目录​ root:超级管理员(root)的家​ home:其他用户(普通用户)的家​ etc:配置文件​ usr:存放共享文件的(软件的安装路径)​ lib:依赖库Linux用户组和用户的概念基本概念用户分为 超级管理员 和 普通用户用户组 是用户的管理单元,一个用户至少属于一个用户组依赖关系超管 操作用户超管可以创建...

2019-10-27 16:29:21

【java_设计模式】动态代理和静态代理的本质区别

前言网上有很多讲动态代理和静态代理的写法作为区分原因,但是都没有讲到本质上本文主要从应用层自上而下看待这个问题应用场景静态代理 // 数据准备 Order order = new Order();order.setUserId(1); Money money = new Money(); // 创建静态代理 O...

2019-10-25 17:03:48

【java_基础深入】从语言规范、字节码指令、jvm编译 理解finally语句块细节

一、finally语句块执行的外在表现1.1. Gosling 亲自对 finally 的描述a finally clause is always entered with a reason. That reason may be that the try code finished normally, that it executed a control flow statement su...

2019-10-22 16:37:46

【java_基础深入】注解注入配置 / Properties读取配置 / ResourceBundle读取配置

注解注入/** * 生命周期问题: * 注解的默认生命周期是保留到字节码阶段 * 通过Retention元注解指定注解的生命周期 * 1. SOURCE 保留到源码阶段 * 2. CLASS 保留到字节码阶段 * 3. RUNTIME 保留到运行时 */@Retention(RetentionPolicy.RUNTIME)public @interface JdbcI...

2019-10-22 10:15:27

【java_基础深入】使用内省技术模仿实现BeanUtils

原BeanUtils出处import org.apache.commons.beanutils.BeanUtils;原BeanUtils常用法populate(Object bean, Map<String, ? extends Object> properties); // 传入Map参数注入bean public void getBean() { ...

2019-10-22 09:50:29

【算法】求100以内的所有素数,使用数组优化

普通解法 public static void getE(int size){ int count = 0; for (int i = 2; i < size; i++) { // 默认所有数都是素数 boolean flag = true; for (int j = 2; j <...

2019-10-20 19:35:36

【算法】从斐波那契问题看待数据结构和算法

题目回顾求斐波那契数列的第n个数1, 1, 2 , 3, 5,8,… /** * 递归算法 * @param n 第n个数 * @return 第n个数的值 */ private static long Fibonacci(int n) { if(n == 1 || n == 2) { ret...

2019-10-20 17:35:51

【java_设计模式】jdk动态代理原码解析,debug 获取 $proxy0

普通测试场景业务场景保存订单信息分层模型IOrderService -> OrderServiceImpl业务代码public class OrderServiceImpl implements IOrderService { // spring 会自己注入,这里手动注入 private IOrderDao iOrderDao; @Override ...

2019-10-09 21:44:51

【java_基础深入】Lambda 与匿名内部类的区别

前言匿名内部类属于java编写代码时候的一种简约写法。Lambda属于匿名内部类的应用层面上的语法糖,实际上,Lambda已经改变了底层逻辑。具体表现Lambda表达式中可以直接super.方法名 ,调用方法所在类的父类方法,而匿名内部类不可以。public class Son extends Father { @Override public void askMoney(...

2019-10-07 22:00:16

【MySQL】伪rank函数的需求实现,使用MySQL变量

目标MySql 没有rank函数,可以使用变量完成rank逻辑题目ddl-- 成绩表 持有学生表和课程表的主键CREATE TABLE `Score`( `s_id` VARCHAR(20), `c_id` VARCHAR(20), `s_score` INT(3), PRIMARY KEY(`s_id`,`c_id`));-- 学生表CREATE TABLE `Stude...

2019-10-07 16:51:33

【MySQL】伪rank函数的需求实现,group by 的使用习惯

题目来源:https://blog.csdn.net/fashion2014/article/details/78826299目标MySql 没有rank函数,可以使用子查询 + 自连接实现rank逻辑题目DDL-- 成绩表 持有学生表和课程表的主键CREATE TABLE `Score`( `s_id` VARCHAR(20), `c_id` VARCHAR(20), `s_s...

2019-09-28 16:24:53

【java_基础深入】源码分析 BufferedOutputStream.close() flush() Socket.shutdownOutput()

具体问题bos.未flush() 会造成 Socket 的 阻塞解决办法: 用 flush 或者 Socket.shutdownOutput()BufferedOutputStream.close() flush() 和 Socket.shutdownOutputBufferedOuputStream 成员变量 和 flush()BufferedOutputStream 内层...

2019-09-20 22:46:47

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。