自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

D调的华丽

Stay hungry! Stay foolish!

  • 博客(72)
  • 问答 (1)

转载 作为一名工程师,你应该专注于成为一名多面手还是专家?

科技行业的每个人都知道每隔几年抑或几个月,就会有新技术或框架进入市场。在 React 出现之前,Angular、Ember 和JQuery已经很好了。不是说人们不再使用Angular了,而是每个人都想学习 React。其他计算机科学领域也是如此:自从神经网络开始改善计算机视觉应用,深度学习和强化学习在机器学习领域变得非常流行。科技趋势也是如此:社交媒体应用使得网络和移动开发非常流行。随后,机器学习和人工智能与区块链和物联网一起进场。这是大势所趋。一种新技术出现 —> 每个人都开.

2020-06-18 21:04:52 161

转载 如何解决代码中 if…else 过多的问题

转自:博客园 作者:艾瑞克·邵www.cnblogs.com/eric-shao/p/10115577.html前言if...else 是所有高级编程语言都有的必备功能。但现实中的代码往往存在着过多的 if...else。虽然 if...else 是必须的,但滥用 if...else 会对代码的可读性、可维护性造成很大伤害,进而危害到整个软件系统。现在软件开发领域出现了很多新技术、新概念,但 if...else 这种基本的程序形式并没有发生太大变化。使用好 if...else ...

2020-06-12 10:33:42 134

原创 对数增长与指数增长

对数增长对数增长关于技能水平的成长,其实有两种不同的类型。对数增长初期进步速度非常快,后面会越来越慢,最后几乎处于一个平台期,哪怕你付出极大的努力也只能获得一点点的突破。体育运动就是这样的情况,万维刚老师在得到专栏说:有一次心血来潮,每天决定跑楼梯。爬楼梯健身(住在9层),而且每天记录成绩,最初的时候只需要1分20秒,两三天以后就达到了1分15秒以内,最后来的最好成绩是55秒。所以健身也好,减肥也好,最初的一段时间,那个感觉是非常愉快,进步神速!最后后来不跑了,过了半年又跑了一次,成绩是..

2020-06-09 10:44:38 140

原创 [翻译] 用十年自学编程

我在网上看到这篇好文章,打算分享出来,但是没有很满意的中文翻译。于是我就翻译一下,希望读者亦有所收获。以下是正文为什么每个人都急不可耐?走进任何一家书店,你会看见《21天Java无师自通》,旁边是一长排看不到尽头的类似书籍,只需要几天甚至几小时,它们就能教会你C、SQL、Ruby、算法等等。我在Amazon.com上进行了如下搜索:    pubdate: after 1992 and title: days and (title: learn or title: teach yourself

2020-06-05 20:45:44 113

转载 李笑来——我的销售概念与方法论

大学毕业之后,会计专业的我去做了销售,为什么呢?因为我真没学会会计这个专业(你看,肯定也有我学不会的事情)…… 另外一个原因是,销售是个没有门槛的工种,尤其是“一线推销”这种工作,只要你肯干就行。别看卖东西这事儿其实谁都能做,卖得好就和做得好任何事情一样,做到顶尖的人少之又少。刚开始的时候,我怎么能想象销售竟然会成为我一生的专长,甚至专业呢?压根就没有想过。我的出发点很朴素:我需要赚钱。所以我就拼命卖东西,这事儿很朴素,所谓买卖,就要低买高卖,差额就是利润。差额越大、销量越多,赚的钱越多..

2020-06-02 20:26:36 556

原创 BigDecimal的大小比较

在比较两个BigDecimal的值是否相等时,要特别注意,使用equals()方法不但要求两个BigDecimal的值相等,还要求它们的scale()相等:BigDecimal d1 = new BigDecimal("123.456");BigDecimal d2 = new BigDecimal("123.45600");System.out.println(d1.equals(d2...

2019-09-05 15:09:21 315

原创 Quartz配置Springboot自带连接池Hikaricp

Quartz默认是使用C3p0作为连接池。C3p0现在比较老,性能也不佳。很多公司都是使用阿里的Druid,网上有相关的配置教程。我们使用Springboot自带的连接池Hikaricp。看了Quartz源码发现 接口PoolingConnectionProvider下面有HikariCpPoolingConnectionProvider 和C3p0PoolingConnectionPro...

2019-06-14 18:21:58 2196

转载 IDEA 自动删除类中无用的import包

在编码的时候经常会重构代码,导致一些不再使用的引入,手动一个个删除比较麻烦。IDEA提供两种解决方案,推荐下面第二种,配置自动清理,一劳永逸,懒人首选!1.手动快捷键Ctrl + Alt + O2.配置自动清理(推荐)Ctrl + Alt + S 打开设置然后,进行如下操作:IDEA会自动清理无引用的包。...

2019-04-24 10:21:55 6588 1

转载 Intellij IDEA自动生成serialVersionUID【不需要插件】

我们经常需要对Java Bean进行序列化,但是默认情况下继承了Serializable接口的类,Intellij IDEA不会自动生成serialVersionUID,需要手动生成,比较麻烦。网上有一种通过IDEA插件的解决方案,但是还有一种更为简便的设置,能直接让IDEA自动帮我们生成serialVersionUID。只需要在Preferences里面进行设置。如下图:Preferen...

2019-04-23 09:59:46 2002

原创 mysql SERIALIZABLE隔离级别死锁问题

最近的项目,为了保障绝对的一致性,使用SERIALIZABLE作为隔离级别。然后就爆出了很诡异的死锁。报错log如下:org.springframework.dao.DeadlockLoserDataAccessException: PreparedStatementCallback; SQL [xxxxx]; Deadlock found when trying to get lock...

2018-10-13 13:52:28 3082

原创 MySQL的四种事务隔离级别

本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB一、事务的基本要素(ACID)  1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。   2、一...

2018-10-13 08:47:43 94

原创 实战KAFKA系列--安装运行Kafka

基于最新版本 2.0.0本教程假设读者完全从零开始,电脑上没有已经存在的Kafka和Zookeeper环境。以下内容需要注意的是:因为在类Unix平台和Windows平台上的Kafka控制脚本不同,在Windows平台上,需要使用路径\bin\windows代替/bin,脚本扩展名改为.bat。 第一步:下载kafka下载Kafka 0.10.2.0版本 并解压:>ta...

2018-09-27 09:27:39 76

转载 全文搜索引擎 Elasticsearch 入门教程

全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 Elastic)是目前全文搜索引擎的首选。它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。Elastic 的底层是开源库 Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elastic 是 Lucene 的封装,提供了 REST ...

2018-09-13 11:35:15 69

原创 MyBatis+MySQL 返回插入的主键ID

需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值。方法:在mapper中指定keyProperty属性,示例如下:<insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.mybatis.User"> ...

2018-05-30 10:53:29 17316 1

原创 MySQL索引原理及慢查询优化

MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问...

2018-05-27 09:16:45 188

原创 Java程序员最常用的Linux命令

大家都知道,Linux系统提供了非常多非常多的命令或工具,这些命令都各有所长,都是系统需要的。但我们精力有限,要掌握全部的命令不太现实,所以只需要掌握其中部分常用的命令即可。这里,我就从一个Java程序员的角度,总结出我常用的一些Linxu命令,供大家参考。文件目录基本操作ls 命令用来显示目标列表,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。常...

2018-05-26 18:33:46 256

原创 经典Java面试题解析——谈谈你对Java平台的理解?

从你接触Java开发到现在,你对Java最直观的印象是什么呢?是它宣传的 “Compile once, run anywhere”,还是目前看已经有些过于形式主义的语法呢?你对于Java平台到底了解到什么程度?请你先停下来总结思考一下。今天我要问你的问题是,谈谈你对Java平台的理解?“Java是解释执行”,这句话正确吗?典型回答Java本身是一种面向对象的语言,最显著的特性有两个方面,一是所谓的...

2018-05-25 15:06:26 1164 1

原创 日志级别动态调整——小工具解决大问题

背景随着外卖业务的快速发展,业务复杂度不断增加,线上系统环境有任何细小波动,对整个外卖业务都可能产生巨大的影响,甚至形成灾难性的雪崩效应,造成巨大的经济损失。每一次客诉、系统抖动等都是对技术人员的重大考验,我们必须立即响应,快速解决问题。如何提高排查问题的效率呢?最有效的方式是通过分析系统日志。如果系统日志全面,会为我们排查解决线上问题带来绝大的帮助,但是要想保证系统日志全面,就必须打印出所有的系...

2018-05-25 09:18:12 508

原创 缓存那些事

前言一般而言,现在互联网应用(网站或App)的整体流程,可以概括如图1所示,用户请求从界面(浏览器或App界面)到网络转发、应用服务再到存储(数据库或文件系统),然后返回到界面呈现内容。随着互联网的普及,内容信息越来越复杂,用户数和访问量越来越大,我们的应用需要支撑更多的并发量,同时我们的应用服务器和数据库服务器所做的计算也越来越多。但是往往我们的应用服务器资源是有限的,且技术变革是缓慢的,数据库...

2018-05-25 09:15:34 245

原创 从实际案例聊聊Java应用的GC优化

当Java程序性能达不到既定目标,且其他优化手段都已经穷尽时,通常需要调整垃圾回收器来进一步提高性能,称为GC优化。但GC算法复杂,影响GC性能的参数众多,且参数调整又依赖于应用各自的特点,这些因素很大程度上增加了GC优化的难度。即便如此,GC调优也不是无章可循,仍然有一些通用的思考方法。本篇会介绍这些通用的GC优化策略和相关实践案例,主要包括如下内容:优化前准备: 简单回顾JVM相关知识、介绍G...

2018-05-25 09:11:56 151

原创 工作中如何做好技术积累

引言古人云:“活到老,学到老。”互联网算是最辛苦的行业之一,“加班”对工程师来说已是“家常便饭”,同时互联网技术又日新月异,很多工程师都疲于应付,叫苦不堪。以至于长期以来流传一个很广的误解:35岁是程序员工作的终点。如何在繁忙的工作中做好技术积累,构建个人核心竞争力,相信是很多工程师同行都在思考的问题。本文是我自己的一些总结,试图从三个方面来解答:第一部分阐述了一些学习的原则。任何时候,遵循一些经...

2018-05-25 09:04:29 442 1

原创 聊聊MyBatis缓存机制

前言MyBatis是常见的Java数据库访问层框架。在日常工作中,开发人员多数情况下是使用MyBatis的默认缓存配置,但是MyBatis缓存机制有一些不足之处,在使用中容易引起脏数据,形成一些潜在的隐患。个人在业务开发中也处理过一些由于MyBatis缓存引发的开发问题,带着个人的兴趣,希望从应用及源码的角度为读者梳理MyBatis缓存机制。本次分析中涉及到的代码和数据库表均放在GitHub上,地...

2018-05-25 09:01:13 91

原创 深入浅出Java中的增强 for 循环 foreach

foreach 是 Java 中的一种语法糖,几乎每一种语言都有一些这样的语法糖来方便程序员进行开发,编译期间以特定的字节码或特定的方式来对这些语法进行处理。能够提高性能,并减少代码出错的几率。在 Java 中还有比如 泛型、自动拆箱、自动装箱、内部类、枚举等等。foreach 是用来对数组或者集合进行遍历的语法。具体语法如下:for(元素类型 ele : 数组名/Iterable 实例){} 下

2017-11-24 14:47:37 1023

原创 [Java基础要义] HashMap的设计原理和实现分析

版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]          HashMap在Java开发中有着非常重要的角色地位,每一个Java程序员都应该了解HashMap。    本文主要从源码角度来解析HashMap的设计思路,并且详细地阐述HashMap中的几个概念,并深入探讨HashMap的内部结构和实现细节,讨论HashMap

2017-11-20 17:36:48 156

原创 《Spring设计思想》AOP设计基本原理

版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]0、前言Spring 提供了AOP(Aspect Oriented Programming) 的支持, 那么,什么是AOP呢?本文将通过一个另外一个角度来诠释AOP的概念,帮助你更好地理解和使用Spring AOP。读完本文,你将了解到:1.    Java程序运

2017-11-20 17:20:48 212

原创 Java 技术之垃圾回收机制

原文出处: wingjay垃圾回收机制是 Java 非常重要的特性之一,也是面试题的常客。它让开发者无需关注空间的创建和释放,而是以守护进程的形式在后台自动回收垃圾。这样做不仅提高了开发效率,更改善了内存的使用状况。今天本文来对垃圾回收机制进行讲解,主要涉及下面几个问题:什么是堆内存?什么是垃圾?有哪些方法回收这些垃圾?什么是分代回收机制?什么是 Java 堆内存

2017-11-09 17:19:42 152

原创 一个面试算法题

两个相同数组,里面存放不同类型的数,随机取出一个,设计算法查找该值。我个人的解法思路,分两种情况:①数组长度比较小的情况下:先排序再比较②数组长度比较大的情况下:键值对,k是对象,v是次数根据键值对 排序然后二分比较

2017-09-25 10:32:26 376

原创 设计模式实践之:你手机中的观察者模式

引子做Android开发的童鞋都知晓目前在开发中最流行的套餐RxJava+Retrofit。嗯哼,前两天和同事吃饭,他无意间提起一个异步的问题;我说:可以用RxJava试试。这个哥们放下筷子,一本正经地告诉我:别用那玩意,不好用。“不好用?”我疑惑地问到 “嗯” “怎么不好用了?” “反正就是感觉有点怪,一会儿观察,一会儿被观察,搞不清楚”嗯嗯,听他说完这些,我

2017-09-20 12:27:55 242

原创 mybatis最佳实践:批量插入

数据库的 逐条插入 与 批量插入 效率相比,批量插入效率高很多。数据量越大,效率差异越大。二者效率差异在哪?逐条操作数据库的时候都会经历下面一个流程:创建数据库连接、打开、执行SQL、关闭连接。创建和打开数据库连接是很慢的,所以你逐条插入的时候觉得慢,就是慢在这个地方。而批量插入的时候,只创建一次数据库连接,因此会快的多。附上批量插入的mybatis sql写法:ins

2017-09-20 11:14:52 711

原创 Java继承中属性、方法和对象的关系

大家都知道子类继承父类是类型的继承,包括属性和方法!如果子类和父类中的方法签名相同就叫覆盖!如果子类和父类的属性相同,父类就会隐藏自己的属性!但是如果我用父类和子类所创建的引用指向子类所创建的对象,父类引用所调用子类对象中的属性值或方法的结果是什么呢?看代码:public class FieldDemo { public static void main(S

2017-09-19 16:21:00 1095

原创 <context:component-scan>使用详解

在xml配置了这个标签后,spring可以自动去扫描base-pack下面或者子包下面的java文件,如果扫描到有@Component @Controller@Service等这些注解的类,则把这些类注册为bean注意:如果配置了那么标签就可以不用再xml中配置了,因为前者包含了后者。另外还提供了两个子标签1.        gai2.       在说明这两个子标

2017-09-18 16:39:21 1835 1

原创 spring ioc原理(看完后大家可以自己写一个spring)

最近,买了本Spring入门书:spring In Action 。大致浏览了下感觉还不错。就是入门了点。Manning的书还是不错的,我虽然不像哪些只看Manning书的人那样专注于Manning,但怀着崇敬的心情和激情通览了一遍。又一次接受了IOC 、DI、AOP等Spring核心概念。 先就IOC和DI谈一点我的看法。IOC(DI):其实这个Spring架构核心的概念没有这么复杂,更

2017-09-18 14:53:52 293

原创 mybatis在xml文件中处理特殊符号(大于号小于号等的方法)

在SQL中会用了>=,第一种:用了转义字符把>和SELECT * FROM test WHERE 1 = 1 AND start_date  &lt;= CURRENT_DATE AND end_date &gt;= CURRENT_DATE附:XML转义字符                 

2017-09-18 10:10:45 1827

转载 Java中的多线程图文详解

引如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生产者,消费者模型”。很多人都

2017-08-23 19:08:30 1410

原创 非科班出身的程序员,该如何弥补技术差距?

随着互联网行业的蓬勃发展,市场对于程序员的需求激增,这个职业也不再囿于计算机科学或软件工程等个别专业的毕业生,非计算机专业出身的程序员为数不少,他们的主业曾是物理、数学、自动化,甚至英语、艺术或历史,但都出于对编程这一事业的青睐,投身成为程序员。什么是非科班出身的程序员顾名思义,并未出身于计算机相关专业的程序员,在行业中普遍被认为是非科班选手。在编程领域里,除非天资超群,否则童子功越早打下越好。接触

2017-08-22 16:59:53 7906

原创 Java面试题全集(上)

1、面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: - 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。 - 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续

2017-08-03 21:48:53 329

转载 Redis五种数据类型介绍

概述Redis的键值可以使用物种数据类型:字符串,散列表,列表,集合,有序集合。本文详细介绍这五种数据类型的使用方法。本文命令介绍部分只是列举了基本的命令,至于具体的使用示例,可以参考Redis官方文档:Redis命令大全字符串类型字符串是Redis中最基本的数据类型,它能够存储任何类型的字符串,包含二进制数据。可以用于存储邮箱,JSON化的对象,甚至是一张图片,一个字符串允许存储的最大容量为512

2017-07-24 22:57:15 220

转载 Java开发必会的Linux命令

作为一个Java开发人员,有些常用的Linux命令必须掌握。即时平时开发过程中不使用Linux(Unix)或者mac系统,也需要熟练掌握Linux命令。因为很多服务器上都是Linux系统。所以,要和服务器机器交互,就要通过shell命令。 本文并不会对所有命令进行详细讲解,只给出常见用法和解释。具体用法可以使用–help查看帮助或者直接通过google搜索学习。 1.查找文件 find / -

2017-07-24 20:07:40 203

原创 redis入门——redis常用命令

Redis的常用命令主要分为两个方面、一个是键值相关命令、一个是服务器相关命令1、键值相关命令 keys * 取出当前所有的key exists name 查看n是否有name这个key del name 删除key name expire confirm 100 设置confirm这个key100秒过期 ttl confirm 获取confirm 这个key的有效时长 select 0

2017-07-24 15:38:05 137

原创 Mybatis分页插件 - PageHelper

1.说明如果你也在用Mybatis,建议尝试该分页插件,这个一定是最方便使用的分页插件。该插件目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库分页。 2.使用方法第一步:在Mybatis配置xml中配置拦截器插件:123456

2017-07-20 19:39:55 105

空空如也

空空如也
提示
确定要删除当前文章?
取消 删除