
Java
文章平均质量分 70
goto rust
这个作者很懒,什么都没留下…
展开
-
编码技巧(一)命名
命名的重要性,不言而喻。一段好的代码,是不需要注释的。需要注释来进行说明的,往往是因为代码不能够清晰的表达出程序的意图。并且注释是需要维护的,系统在经历n代人的修修改改后,注释却依然保持着它最初的样子,这样的情况在一个历史悠久的系统中比比皆是,反而成了代码的坏味道。一言以蔽之,好的代码,拿到它的人能够轻松的通过命名看出字段的含义,方法做的事情,类的所属。那么,怎么写出好的命名呢?原创 2016-12-21 22:33:58 · 518 阅读 · 0 评论 -
编码技巧(二)多分支结构
在实际编程中,常常会遇到这样的情况,多个if语句嵌套使用,我曾见过最深的嵌套达4个,简直让人抓狂,通常代码可读性随着嵌套的层数增多而几何级数的降低。似我这等凡夫俗子,到4层几乎很难凭借肉眼看出代码的含义了。那么如何避免多if语句嵌套呢?原创 2016-12-19 23:00:46 · 794 阅读 · 0 评论 -
Object的辅助类Objects
我们知道Java提供了很多基础类以及他们的辅助类,比如Array与Arrays,Collection与Collections,今天学习一个1.7新加入的一个辅助类Objects。原创 2015-11-07 17:09:26 · 1625 阅读 · 0 评论 -
Object对象详解(四)之wait与notify/notifyAll
在Java1.5之前,进程之间协作只能通过synchronized+wait/notify,1.5后加入了J.U.C,虽然多了很多选择,但是还是有必要学习一下。原创 2015-09-02 17:14:51 · 582 阅读 · 0 评论 -
线程缓存的探索
线程通信有两种方式:共享内存与消息传递。 共享内存即多个线程共享程序的公共变量,通过变量状态的读写来进行隐式共享;消息传递则是线程之间没有公共变量,而是通过消息传递来进行显示的通信。而在Java中,采用的是共享内存来进行线程间通信(多线程共享变量方式 )原创 2015-10-05 15:09:34 · 1824 阅读 · 0 评论 -
求1+2+3+...+n
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。原创 2015-10-04 12:54:28 · 584 阅读 · 0 评论 -
Java 构建二叉树
由层次遍历结果创建二叉树原创 2015-10-01 20:42:37 · 601 阅读 · 0 评论 -
Java单例模式结合JUC原子类爆发的新想法
(新发现)利用J.U.C提供的原子类,实现单例模式原创 2015-08-20 16:13:45 · 705 阅读 · 0 评论 -
编码技巧
本文主要记录近来的一些感受,在初入业务线后,写过一些代码后,越发觉得系统可维护的重要性.一个结构清晰,设计友好的系统,能轻松的在不改动或稍微改动原有结构的基础上实现需求,而一个设计糟糕的系统(无良好注释,命名不规范,逻辑不清晰等),让人很难上手,稍微的小点改动也是战战兢兢,如履薄冰一般。原创 2016-12-19 21:33:07 · 382 阅读 · 0 评论 -
JDK中的设计模式——单例模式
jdk中单例的运用原创 2017-04-04 15:51:00 · 1044 阅读 · 1 评论 -
编码技巧(三)减少GC
选择了Java,那么在你享受它带来的便利的同时,也必须忍受它的缺点。少了C++里的指针,也不需要开发人员去管理内存的分配,JVM提供了很好内存管理机制,帮助分配与回收内存。在为你省心的同时又为你制造了麻烦,回收内存时,会导致系统不对外提供服务,而只专心做一件事——回收内存(GC)。 在一个正常服务中,这个时间很短,短到感知不到(没有full GC)。但是如果写了错误的代码或是系统到达瓶颈或是别的...原创 2018-03-29 13:19:03 · 334 阅读 · 0 评论 -
21个最常见Java并发编程面试题
Thread 的run 与start方法有什么区别5个线程同时访问5个共享资源,如何避免死锁哪种使用多线程的方式更好呢?继承Thread or 实现 Runnable“Busy Spinning”是什么?你为什么使用它CountDownLatch和CyclicBarrier有什么区别wait和sleep有什么区别实现一个生产者、消费者模型为什么ConcurrentHashMap比H...原创 2019-09-12 21:58:17 · 325 阅读 · 0 评论 -
Master选举组件
背景在集群中,经常会需要选举master,在很多开源分布式中间件比如ZK,ES都会有master选举问题。通常我们会使用ZK或者自己实现来做master选举。但是,因为master选举的功能,而引入ZK,代价太大,并且增加系统维护成本。自己实现你master则需要设计完整的master选举算法,目前大部分都是各自实现自己的master算法。还有另外一个场景,集群内的机器需要相互感知到对方的存在...原创 2019-05-04 22:42:01 · 253 阅读 · 0 评论 -
Java8 Stream学习
stream-practiceStream 构建API empty Stream empty() empty方法返回一个空的顺序Stream,该Stream里面不包含元素项。 of Stream of(T... values), Stream...原创 2019-04-07 15:21:32 · 731 阅读 · 0 评论 -
线上服务宕机问题排查思路
第一步 — 不要慌张,尽快恢复服务可用或者降级出现线上问题的时候,紧张在所难免,有一篇文章讲解新手与老手处理线上问题的差别:新手遇到问题后,都是忙于排查问题,“这个是怎么回事”,“怎么突然宕机了”,老手会首先想“是否有服务降级策略”,“怎么快速恢复服务”,“重启吧,90%的问题能够靠重启解决”,“是不是上游或者下游有异常”。在分布式系统横行的今天,大部分故障可分为一下几类:系统资源不够用(...原创 2019-03-30 17:53:31 · 1667 阅读 · 1 评论 -
Java程序调优实例 (持续更新)
利用JIT编译,避免线上服务刚启动时候的流量尖刺参考:https://blog.youkuaiyun.com/shengzhu1/article/details/73281722用法:在服务启动之后,正式加入线上集群之前,通过流量回放的方式,提升方法的执行数量,使得JIT对其进行优化。...原创 2019-03-30 17:12:15 · 255 阅读 · 0 评论 -
编码技巧-优雅代码入门
前言在CR代码的过程中,发现很多人的代码都存在很多问题,和同事讨论思考了下,可能是因为他并不知道如何更好的组织。其实写代码这件事有很多方法论,这篇文章主要就是告诉你,如何使用方法论写出更好的代码。这篇文章将展示一些糟糕的代码,以及如何让他们变得优雅。烦人的if程序流程由顺序、分支、循环构成,if是代码中不可或缺的部分。卫语句 /** * 获取列表中早于今天的所有日期 ...原创 2018-10-22 13:35:10 · 256 阅读 · 0 评论 -
Java String小结
Q: String为什么不可变A: 1. 实现保证,内部属性设置为final,保证初始化之后就不能改变 2. 提供给外部的api不能直接操作内部属性,并且涉及到修改的部分,都是重新创建String对象 3.class声明为final,进一步保证不能够通过继承来修改内部值 4. JVM对String对象的优化,参考字符串常量池 5. 事实上,可以通过反射修改String对象的值参考htt...原创 2018-07-02 11:14:27 · 246 阅读 · 0 评论 -
Java线程池小结
线程池参数 参数名 作用 corePoolSize 核心线程数 maximumPoolSize 最大线程数 keepAliveTime 线程池中超过corePoolSize数目的空闲线程最大存活时间;当设置allowCoreThreadTimeOut=true会使得核心线程也超时被释放 TimeUnit keepAliveTime时...原创 2018-07-02 11:09:25 · 205 阅读 · 0 评论 -
Json解析工具的缺陷与可改进点
当Json与接口相遇原创 2015-08-04 15:28:45 · 2677 阅读 · 0 评论 -
Object对象详解(三)之hashCode与equals
介绍Object 中的equals与hashCode方法原创 2015-07-30 21:31:59 · 893 阅读 · 0 评论 -
Object对象详解(二)之clone
使用clone方法需要注意的地方,以及什么是“shallow copy”,什么是“deep copy”?原创 2015-07-30 11:28:40 · 938 阅读 · 0 评论 -
Java 抽象类与接口
Java 抽象类与接口原创 2015-03-09 13:14:29 · 797 阅读 · 0 评论 -
Java 集合概览
集合是Java中非常重要的一部分,熟练使用它是每个Java程序猿必备的技能。本文讲解了集合的组成,分析了部分重要数据结构的源码原创 2015-03-06 15:11:22 · 696 阅读 · 0 评论 -
Java Array与Arrays
介绍Array与Arrays原创 2015-03-06 14:24:36 · 1169 阅读 · 0 评论 -
Java Collections与Collection
今天参加面试时,遇到一个比试题,题目如下:Java 中,Collections与Collection的区别是什么。 当时就蒙了,Co原创 2014-10-30 21:33:20 · 841 阅读 · 0 评论 -
final finally finalize的区别
首先看final在java中的用法原创 2014-11-07 11:55:14 · 816 阅读 · 0 评论 -
java 通过源码看String的Equals与==
今天测试一段代码,死活不对!遂zu'yi原创 2014-07-25 15:07:46 · 772 阅读 · 0 评论 -
Java 中json传送数据时,不能正确解析TimeStamp
今天在做测试的时候转载 2014-10-06 16:10:40 · 2264 阅读 · 0 评论 -
Java7 与 JDBC
今天看到JDBC的部分,其实以前就看过了,只是记性比较差,所以才写下来,以备以后cha原创 2014-09-25 19:17:41 · 804 阅读 · 0 评论 -
21天概览Java面试知识之基础篇
java基础知识整理原创 2015-03-05 15:44:12 · 681 阅读 · 0 评论 -
Java线程共享变量时,因为Java自动拆装箱失败
今天做了一个实验,想要用在线程之间共享变量。我是使用static原创 2014-10-23 20:14:55 · 599 阅读 · 0 评论 -
Java并发编程读书笔记(二)之原子操作
并发编程中,需要将一个可能发生线程安全问题的操作变为一个原子操作。方法很多,比如CAS、synchronized、lock。这里说明一点,多个线程安全的原子操作放到一起并不一定是线程安全的。比如原创 2015-04-23 15:30:29 · 691 阅读 · 0 评论 -
多线程共享变量方式
多线程间共享变量的三种方式原创 2015-08-25 17:15:06 · 3288 阅读 · 0 评论 -
Object对象详解(一)之toString
Object作为Java中超然的存在,其中定义了一切对象都共有的方法。 特点: 1. java.lang包在使用的时候无需显示导入,编译时由编译器自动导入。 2. Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类。 3. Object类是Java中唯一没有父类的类。其他所有的类,包括标准容器类,比如数组,都继承了Object类中的方法。下面将详细介绍Object原创 2015-07-30 10:27:52 · 1379 阅读 · 0 评论 -
Java 静态代码块与构造方法执行次序
简述类的静态代码块和构造方法的执行次序原创 2015-06-05 19:51:44 · 589 阅读 · 0 评论 -
质因数分解
质因数分解原创 2015-05-07 14:52:46 · 650 阅读 · 0 评论 -
ArrayList线程不安全分析
众所周知,ArrayList作为Collection中极重要的一员,是非线程安全的。那么它的非线程安全体现在哪些地方呢?下面我就具体分析这个问题。不对之处,欢迎大家指正。在讨论这个问题之前,先说下线程安全的三个重要特性:操作原子性、状态一致、内存可见性。操作原子性:该操作只能一口气做完,中间不能停顿。状态一致性:共享对象的状态要一致。内存可见性:每个线程都有自己的工作空间,它使用某...原创 2015-06-01 10:02:48 · 3011 阅读 · 1 评论 -
Eclipse debug时报错“Absent Line Number Information”
Eclipse 调试时,在Java源码中加了一个断点。debug时提示如下:导致原因:使用的JDK库文件包含JDK和JRE两部分,修改为JDK即可。欢迎加群,一起学习进步...原创 2015-05-14 21:10:26 · 8092 阅读 · 4 评论 -
Java基础之反射
如何通过Java反射获取类的所有信息?本文告诉你原创 2015-04-25 19:46:44 · 1224 阅读 · 0 评论