- 博客(164)
- 资源 (12)
- 问答 (4)
- 收藏
- 关注
原创 规范,优雅的使用工具类
什么是工具类大家项目中不管是自己练习的demo还是企业里正式的项目都肯定有各种各样的工具类, 有祖传的也有新写的. 要说什么是工具类, 大家都能张口就来, 封装了公共逻辑的, 不能实例化的, 不依赖具体业务数据的就是工具类.实际企业项目中的问题但是在项目中我发现大家写的工具类往往不符合Sonar静态代码规范, 甚至在工具类依赖框架bean的时候将工具类实例化当作普通类来使用.理想的工具类我认为理想中的工具类应该具有如下特性:符合工具类定义, 抽象通用逻辑, 不依赖具体业务数据提供静态方法给调
2021-04-14 13:41:37
406
原创 看上市公司如何保证代码质量
代码质量控制是开发人员的朋友而不是敌人, **我们的目标是得到质量良好, 可以长期维护的代码, 质量控制是达到这一目标的手段
2020-08-11 15:12:47
828
原创 你看远处的山它好像一个小顶堆
原创文章,转载请私信.关注公众号 tastejava 学习加思考,品味java之美什么是小顶堆小顶堆是一种经过排序的完全二叉树, 其满足如下性质:小顶堆中的任意父节点都比其两个孩子结点小由上方性质又可以推导出如下性质:小顶堆的根节点为整个堆元素中最小的元素将小顶堆装入数组我们当然可以用面向对象的方式描述一颗二叉树, 但是有没有不浪费一丁点空间. 即除了元素本身开销外, 尽量不额外占用内存空间的描述方式呢?有的, 我们可以把小顶堆装入数组中. 为了把小顶堆装入数组中, 我们需要给出.
2020-06-30 18:08:40
247
原创 来啊, 一起看遍JDK源码
原创文章, 转载请私信. 关注 tastejava 学习加思考, 仔细品味java之美为什么要阅读源码面试要考, 不管是什么公司面试, 源码相关知识点考察是少不了了, 例如ArrayList与LinkedList区别这样的烂大街问题开发要用, 肯定要很熟悉JDK常见api, 理解其内部实现和特点才能正确灵活的运用怎么阅读源码经过一段时间的摸爬滚打, 我发现要想高效的阅读源码, 首先阅读英文原始文档的能力要强, 其次要熟练掌握所使用的IDE方法跳转相关操作, 如实现类跳转到接口, 接口跳转到.
2020-06-29 15:31:11
246
原创 巧妙的CAS与乐观锁思想
原创文章,转载请私信。关注 tastejava 学习加思考,品味java之美摘要接下来我们先理解CAS怎么保证安全的修改共享变量,然后查看JDK源码分析其最佳实践,再举例实际企业开发中乐观锁思想的应用。最后总结CAS以及分析其局限性。什么是CASCAS是CompareAndSwap,即比较和交换。为什么CAS没有用到锁还能保证并发情况下安全的操作数据呢,名字其实非常直观的表明了CAS的...
2020-03-04 09:53:40
221
原创 10句有效代码带你分析6种线程状态
原创文章, 转载请私信. 关注 tastejava 学习加思考, 仔细品味java之美为什么要了解java线程的状态多线程高并发是初级开发者迈向中高级开发者必须要掌握的能力, 万丈高楼平地起, 在深入了解这部分内容前, 我们要明确最基本的概念, 即线程有哪些状态.从源码来看Java线程有哪些状态得益于开源精神, 我们可以直观的分析看到在Java中, 线程到底有哪些状态. Java中记录...
2020-02-13 10:50:31
266
原创 从源码角度分析hashCode和equals, 再也不背hashCode和equals的覆写规则了:)
原创文章, 转载请私信什么是hashCode和equalshashCode和equals都是Object对象中的方法, 也就Java中是所有对象都默认拥有这两个方法. 方法的作用正如其名, hashCode用于返回当前对象的hash值, equals方法用于比较两个对象是否相等.hashCode和equals默认实现Object类中hashCode和equals的源代码分别如下所示:...
2019-12-23 08:27:30
186
原创 Java BIO NIO 与 AIO 分析第三部分之AIO
AIO部分上一篇文章中分析了BIO部分, 接下来分析一下AIO部分, AIO是JDK1.7新增的属于java.nio包下的IO组件. 还是一样的思路, 从了解AIO的各个重要组件开始. JAVA的AIO只提供TCP操作和文件操作, 没有提供UDP支持. 主要组件有CompletionHandler, AsynchronousFileChannel, AsynchronousServerSocke...
2019-12-05 10:36:03
425
原创 Java BIO NIO 与 AIO 分析第一部分之BIO
BIO NIO AIO的概念首先要明确阻塞/非阻塞即blocking/non-blocking和同步/异步即synchronous/asynchronous的概念, 阻塞和非阻塞指的是是否会阻塞当前线程, 例如调用ServerSocket的accept方法后, 当前线程就会阻塞等待连接建立. 同步和异步指的是一个操作结果需要主动获取还是通过回调函数处理, 例如:// 解释异步同步概念伪代码/...
2019-11-25 10:10:14
268
原创 JDK8 Optional 应用场景与方式分析
Optional 出现的意义Optional 是从 JDK1.8 开始提供的一个容器类, 主要用于避免空指针异常(NPE), 其提供的一系列方法配合 Lambda 表达式可以让代码更加清晰, 语义化, 以及避免了空指针异常的问题这里要注意是避免空指针异常, 而不是避免返回null.Optional 源码分析及使用关于 Optional 方法怎么使用的资料网络上也有很多了, 不过一些文章不是很...
2019-11-14 15:14:45
6353
3
原创 JDK8 Stream 流式操作分析
Stream 是什么, 能干什么Stream 实例的创建Stream 的使用Stream实例的操作Stream实例操作结果的聚集
2019-11-14 10:13:25
444
原创 Java函数式编程分析
Java开发者一般都习惯面向对象编程, 实际项目中函数式编程出现频率也不太高, 要理解函数式编程首先要理解一些前置概念, 我来总结一下Java中的函数式编程, 如果为其他人节约了时间, 减轻了学习成本, 那就太好了.什么是函数式编程函数式编程是一种编程范式, 允许将函数作为参数传递给目标方法, 目标方法也可以返回一个函数.(将方法实现延后到调用方法传递参数的时刻, 让参数或者返回结果包含逻...
2019-11-13 16:45:36
214
原创 VantUI(ZanUI)框架使用async-validator进行表单数据校验
前端UI框架与async-validator介绍VantUI是一款有赞出品的基于Vue的前端手机端开发框架ElementUI和MintUI是两款饿了么公司出品的基于Vue的UI框架, ElementUI适用于电脑端, MintUI适用于手机端async-validator是一款基于js的异步数据校验插件(当前github上已有117k个仓库使用了async-validator)asy...
2019-10-10 17:11:25
2605
原创 文件路径问题
unix/linux中文件路径为左斜线'/'分隔windows中文件路径为右斜线'\'java中引用文件路径经常出现"C:\\abc\\bacd\\ef.txt"的情况,因为右斜线需要转义以后java中有关路径都用左斜线'/'简洁.
2017-10-25 13:35:36
290
转载 springboot项目以war包形式部署
转载自u012359995 原文链接 http://m.blog.youkuaiyun.com/u012359995/article/details/52515226把spring-boot项目按照平常的web项目一样发布到tomcat容器下一、修改打包形式在pom.xml里设置 war二、移除嵌入式tomcat插件在pom.xml里找到spri
2017-10-18 09:54:11
6185
原创 linux中service命令的原理
service xxx启动 /etc/init.d/目录下的xxx脚本例如service vsftpd start 与 /etc/init.d/vsftpd start有着同样的作用常见命令 start stop reload restart force-reload把可执行脚本sh全路径放到/etc/rc.local中即可实现开机自启动rc0.d到rc6.d是linux中
2017-10-17 19:07:31
1805
转载 zookepper搭建
本篇文章结构:总共包括10个系列 ZooKeeper系列之一:ZooKeeper简介 ZooKeeper系列之二:ZooKeeper数据模型、命名空间以及节点的概念 ZooKeeper系列之三:ZooKeeper的安装ZooKeeper系列之四:ZooKeeper的配置ZooKeeper
2017-10-13 14:34:32
989
转载 tomcat集群共享session
本文转载自csdn博客用户fengwind1tomcat集群的主要方法有三种:1、采用粘性会话,即某个ip只会访问集群中的某一台机器,这样就可以简单的解决session共享的问题;2、采用会话共享,目前网上较多的案例是使用memcahed作为共享容器,需要开发以memcahed作为容器的会话管理器,然后配置到tomcat中。3、采用session复制技术,tomcat本身已支持
2017-10-13 13:35:23
477
转载 cookie与session详解
一个很古老的博客,已经不知道原作者是谁了,从文章中说普遍手机浏览器不支持cookie这一点来看这篇博客起码写于2012年以前.cookie与session介绍得很详细,读过之后帮助很大,所以收藏在自己的博客里.读这篇博客的时候文章中的图片是缺失状态,当转载到csdn博客竟然显示出了图片,可以推断原作者很有可能在csdn发表过这篇博文,实在是太奇妙了!1.1 Cookie机制在
2017-10-12 18:18:39
374
转载 欢迎使用优快云-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-10-12 17:47:58
244
原创 linux命令加杠不加杠,单杠与双杠
单杠后面参数是单字母形式,双杠后面参数是单词形式例如rm -vf ***tar -xzvf ***.tar.gzgcc --versionrm --help参数前面加杠是System V风格,不加杠是BSD风格.
2017-10-12 10:58:57
1578
原创 ps aux|grep xxx
ps aux|grep tomcatps:Process Status进程状态监控-aux参数-d:显示所有进程但是忽略会话引线-a:显示一个终端的所有进程除了会话引线-u:uid or username 选择有效的用户id或者用户名-x:显示没有控制终端的进程,同时显示各个命令的具体路径,dx不能合用grep:global search regular
2017-10-12 10:27:27
4590
转载 Intellij IDEA快捷键
Intellij IDEA中有很多快捷键让人爱不释手,stackoverflow上也有一些有趣的讨论。每个人都有自己的最爱,想排出个理想的榜单还真是困难。以前也整理过Intellij的快捷键,这次就按照我日常开发时的使用频率,简单分类列一下我最喜欢的十大快捷-神-键吧。1 智能提示Intellij首当其冲的当然就是Intelligence智能!基本的代码提示用Ctrl+Space,
2017-09-29 15:16:11
164
原创 被@Autowired的对象不能再new
Spring中被Autowired后的对象不能再用new关键字实例化,否则会报空指针异常org.springframework.web.util.NestedServletException: Request processing fail nested exception is java.lang.NullPointerException被这个错误折腾了一个小下午,我怎么就管不住我这手呢
2017-09-20 19:23:22
2397
原创 git终端生成ssh key
①设置git的username和email$ git config --global user.name "gzl"$ git config --global user.email "gzl@abc.com"②生成ssh key$ ssh-keygen -t rsa -C “gzl@abc.com”生成的ssh key文件在/users/用户名/.ssh文件夹下
2017-09-19 10:00:08
380
原创 反射(Reflection)和内省(Introspector)
反射可以通过类名获取到对应的Class,可以通过方法名获取到Method并通过invoke方法调用获取到的方法.应用场景:这样一个应用程序,它支持动态的功能扩展,也就是说程序不重新启动但是可以自动加载新的功能,这个功能使用一个具体类来表示。首先我们必须为这些功能定义一个接口类,然后我们要求所有扩展的功能类必须实现我指定的接口,这个规定了应用程序和可扩展功能之间的接口规则,但是怎么动态加载呢?我
2017-09-15 11:31:07
298
转载 RESTful登录设计(基于Spring及Redis的Token鉴权)
什么是RESTREST(Representational State Transfer)是一种软件架构风格。它将服务端的信息和功能等所有事物统称为资源,客户端的请求实际就是对资源进行操作,它的主要特点有: – 每一个资源都会对应一个独一无二的url – 客户端通过HTTP的GET、POST、PUT、DELETE请求方法对资源进行查询、创建、修改、删除操作 – 客户端与服务端的交互必须是无状
2017-09-14 14:11:36
411
转载 前后端分离springmvc和RESTful理解
1. 理解MVCMVC是一种经典的设计模式,全名为Model-View-Controller,即模型-视图-控制器。其中,模型是用于封装数据的载体,例如,在Java中一般通过一个简单的POJO(Plain Ordinary Java Object)来表示,其本质是一个普通的Java Bean,包含一系列的成员变量及其getter/setter方法。对于视图而言,它更加偏重于展现,也就是说,
2017-09-14 11:35:11
328
转载 黎活明给程序员的忠告
黎活明,传智播客教育总裁,Java EE高级架构师、咨询顾问、高级讲师,国内第一本ejb3.0书籍的作者,有着丰富的b/s系统开发与网站运营经验。现任传智播客教育科技有限公司Java EE高级架构师与咨询顾问。其中一些我认为经典的地方,做了标红处理。展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告 走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序
2017-09-13 14:07:25
294
转载 树莓派搭建服务器具体的教程(tomcat+mysql)
转自gepeisong,怕原作者删除,所以转到自己博客作为一个备份.这几天搞自己的网站,想把树莓派当服务器,于是就捣鼓了几天,期间,遇到了一些问题,感觉网上的资料也不太全面,废话不多说,直接进入正题!(ps:www.gepeisong.com这是我个人的网站)材料:树莓派,tf卡(最好大于8g),读卡器,一根网线,路由器。1 首先你得有块树莓派!其次如果只买了板子,没有买屏幕(建议
2017-09-07 18:25:09
1932
转载 树莓派搭建各种服务器教程
Raspberry Pi(树莓派)有很多的应用,其中搭建服务器是大家应用比较多的,今天就整理一个合集用Raspberry Pi(树莓派)打造各种服务器。欢迎大家提出宝贵意见,更欢迎大家补充您用树莓派所做的好玩的应用![教程] 将树莓派变成网络打印机服务器(更新PC和手机端设置)!http://www.eeboard.com/bbs/thread-8818-1-1.html[
2017-09-07 09:39:36
4295
转载 java线程池分析转自trinea
Java(Android)线程池介绍new Thread的弊端及Java四种线程池的使用,对Android同样适用。本文是基础篇,后面会分享下线程池一些高级功能。1、new Thread的弊端执行一个异步任务你还只是如下new Thread吗?Javanew Thread(new Runnable() { @Override public void r
2017-09-05 10:36:31
185
原创 DCM示例文件下载网站
http://www.barre.nom.fr/medical/samples/http://deckard.mc.duke.edu/%7Esamei/tg18#_DOWNLOAD_THE_TG18
2017-09-04 18:27:10
7875
java高级成像 jai库
2018-01-17
Efilm 4.1 安装文件和注册机 part3
2017-12-12
Efilm 4.1 安装文件和注册机 part2
2017-12-12
Efilm 4.1 安装文件和注册机 part1
2017-12-12
tomcat7 官网原版tomcat
2017-09-18
SSM整合所需要的全部jar包,spring版本为较新的4.3,mybatis也为较新的3.4,亲测可用.
2017-09-18
redis方法加了@Transactional注解后方法内watch操作报错
2019-01-10
多用户高并发插入数据怎么解决并发问题
2018-04-19
请问axios的npm安装方式与cdn导入方式有什么区别?
2018-03-02
servlet怎么实现模拟链接点击?
2017-01-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人