Java我人生的技术博客

为生活奔波、前进的同时更希望为技术而痴狂,岁月不止,奋斗不息,Java我人生,让你我共同积淀与进步吧..........

排序:
默认
按更新时间
按访问量

马上要走了,去北京.....

马上要走了,去北京闯一闯,去北京一直是我的初衷,经过这么长时间的各种波澜,还是决定趁年轻,多出去闯闯,追求自己想要的东西,毕竟,人生在世,能有这么几次呢,也就年轻这么一次。年轻,是谁都有过的资本,但是有限时间,让年轻发挥出最大的价值,还是自己决定的,路,还得是自己走!        想想去北京,...

2016-03-16 00:52:22

阅读数:7173

评论数:35

Java永久代去哪儿了

在Java虚拟机(以下简称JVM)中,类包含其对应的元数据,比如类的层级信息,方法数据和方法信息(如字节码,栈和变量大小),运行时常量池,已确定的符号引用和虚方法表。 在过去(当自定义类加载器使用不普遍的时候),类几乎是“静态的”并且很少被卸载和回收,因此类也可以被看成“永久的”。另外由...

2015-09-08 08:54:40

阅读数:4768

评论数:3

深入剖析tomcat之servlet容器

其实我们开发中经常用tomcat应用服务器,tomcat就一个servlet容器,能够运行基于serlvlet的应用程序并响应相应的http请求,开发时间长了,还是想想具体知道它是怎么运行的,尤其是servlet容器的机理,所以有幸拜读了外国人的《深入剖析tomcat》,感觉挺不错的,可以在此点击...

2015-09-01 08:54:46

阅读数:5676

评论数:2

springMVC工作原理

SpringMVC框架介绍     1) Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。 Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内...

2015-07-30 09:03:43

阅读数:10233

评论数:1

深入分析Java ClassLoader原理

一、什么是ClassLoader? 大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以经常...

2015-07-29 08:49:27

阅读数:2251

评论数:2

深入理解Memcached原理

1.为什么要使用memcache  由于网站的高并发读写需求,传统的关系型数据库开始出现瓶颈,例如: 1)对数据库的高并发读写: 关系型数据库本身就是个庞然大物,处理过程非常耗时(如解析SQL语句,事务处理等)。如果对关系型数据库进行高并发读写(每秒上万次的访问),那么它是无法承受的。 2...

2015-07-24 08:59:40

阅读数:9742

评论数:0

ConcurrentHashMap原理分析

 集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,que...

2015-07-16 08:50:48

阅读数:1058

评论数:0

Nginx优化详细,应对高并发

 nginx指令中的优化(配置文件) worker_processes 8;   nginx进程数,建议按照cpu数目来指定,一般为它的倍数。 worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 001000...

2015-07-16 08:48:21

阅读数:12692

评论数:2

触发JVM进行Full GC的情况及应对策略

Full GC又称作Major GC,属于老年代GC,指发生在老年代的GC,相对这种GC的有新生代GC即Minor GC。出现Full GC的时候经常伴随至少一次的Minor GC,但非绝对的,Major GC的速度一般会比Minor GC慢10倍以上。下边看看有那种情况触发JVM进行Full G...

2015-07-01 08:54:00

阅读数:62507

评论数:6

Linux与JVM的内存关系分析

引言 在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约600m,Linux自身使用大约800m。从表面上,物理内存应该是足够使用的;但实际运行的情况是,会发生大量使用SWAP(说明物理内存不够使用了),如下图所...

2015-07-01 08:51:03

阅读数:3264

评论数:5

Linux中CPU与内存性能监测

在系统维护的过程中,随时可能有需要查看 CPU 使用率内存使用情况的需要,尤其是涉及到JVM,程序调优的情况,并根据相应信息分析系统状况的需要。 top命令 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。运行 top 命令后...

2015-06-29 09:05:09

阅读数:8756

评论数:1

一次非常有意思的SQL优化经历:从30248.271s到0.001s

场景 我用的数据库是mysql5.6,下面简单的介绍下场景 课程表 create table Course( c_id int PRIMARY KEY, name varchar(10) ) 数据100条 学生表: create table Student( id ...

2015-05-19 08:42:15

阅读数:3475

评论数:5

java6,7,8中String.intern进化史与深度剖析

这篇文章将要讨论 Java 6 中是如何实现 String.intern 方法的,以及这个方法在 Java 7 以及 Java 8 中做了哪些调整。 字符串池 字符串池(有名字符串标准化)是通过使用唯一的共享 String 对象来使用相同的值不同的地址表示字符串的过程。你可以使用自己定义的 Map...

2015-05-14 08:48:23

阅读数:2374

评论数:0

10个对开发项目有害的编程习惯

避免这些常见的编码习惯,会让我们的工作更轻松、软件更安全且更易于扩展。 帕雷托法则明确指出,20%的因导致80%的果。又称为80-20法则,它适用于几乎每一个需要人作为劳动主体的相关领域。 在软件开发领域,这个法则可以概括为,大多数的问题都是由少数不良编码习惯造成的。改变这些习惯,你会更有效率...

2015-04-27 09:13:01

阅读数:2998

评论数:4

java虚拟机垃圾回收被误解的7件事

对Java垃圾回收最大的误解是什么?它实际又是什么样的呢? 当 我还是小孩的时候,父母常说如果你不好好学习,就只能去扫大街了。但他们不知道的是,清理垃圾实际上是很棒的一件事。可能这也是即使在Java的世界中, 同样有很多开发者对GC算法产生误解的原因——包括它们怎样工作、GC是如何影响程序运行和...

2015-04-22 09:15:46

阅读数:1823

评论数:0

oracle到底能不能insert into 多个values!?

稍微熟悉oracle的都知道,如果我们想一条SQL语句向表中插入多个值的话,如果INSERT INTO 某表 VALUES(各个值),VALUES(各个值),.....;这样会报错的,因为oracle是不支持这种写法的,如果多个INSERT INTO VALUEES(各个值);这样以“;”隔开一同...

2015-04-21 08:51:10

阅读数:73011

评论数:12

详解java类的生命周期

引言         最近有位细心的朋友在阅读笔者的文章时,对java类的生命周期问题有一些疑惑,笔者打开百度搜了一下相关的问题,看到网上的资料很少有把这个问题讲明白的,主要是因为目前国内java方面的教材大多只是告诉你“怎样做”,但至于“为什么这样做”却不多说,所以造成大家在基础和原理方面的知识...

2015-03-29 22:31:01

阅读数:945

评论数:0

字典树-大量字符串前缀及出现次数是否存在统计(Trie树-java)算法实现

前言        字典树又称单词查找树,它是一种树形结构,是一种哈希树的变种,典型应用是用于统计,保存大量的字符串(但不仅限于字符串),统计以是否有以某字符串最为前缀的字符串,有的话有多少,某字符串出现了多少次等,所以经常被搜索引擎系统用于文本词频统计。        它与字典很相似,当你要查一...

2015-03-28 22:59:45

阅读数:10603

评论数:12

美国互联网公司为什么只在中国失败了?

过去10年间,几乎所有美国互联网公司在中国都失败了。雅虎收购3721(一些人说3721是百度出现前占主导地位的关键词搜索引擎)进入中国市场,很快就把3721做砸,后来雅虎中国被阿里巴巴收购。 eBay收购最大C2C网站易趣网,花了几个亿做市场营销,成功把后者市场份额从90%以上变为不到10%,最...

2015-03-26 08:34:46

阅读数:4330

评论数:14

透过J2Cache的吐槽,领悟代码的设计

经常去开源社区的,大部分应该都知道J2Cache吧,不过没听说过也没关系,这 是 开源中国社区OSChina 目前正在使用的两级缓存框架,托管在OSG@Git上,大部分由设计人红薯来维护。它的第一级缓存使用 Ehcache,第二级缓存使用 Redis 。由于大量的缓存读取会导致 L2 的网络成为...

2015-03-25 22:19:53

阅读数:9635

评论数:8

Java代码优雅之道-Guava

Guava,中文是石榴的意思,Guava项目,是基于java的Google的开源的工具类库,包含了许多被Google的java项目广泛依赖的核心库,例如:集合、缓存、原生类型支持、并发库、通用注解、字符串处理、I/O 等等。 所有这些工具每天都在被Google的工程师应用在产品服务中。      ...

2015-03-24 23:21:04

阅读数:9689

评论数:0

最常用的15大Eclipse开发快捷键技巧

引言        做java开发的,经常会用Eclipse或者MyEclise集成开发环境,一些实用的Eclipse快捷键和使用技巧,可以在平常开发中节约出很多时间提高工作效率,下面我就结合自己开发中的使用和大家分享一下Eclipse中常用到的快捷键和技巧。   1、alt+?或alt+/:自动...

2015-03-24 22:35:09

阅读数:185783

评论数:42

20个 Unix/Linux 命令技巧

让我们用这些Unix/Linux命令技巧开启新的一年,提高在终端下的生产力。我已经找了很久了,现在就与你们分享。 删除一个大文件 我在生产服务器上有一个很大的200GB的日志文件需要删除。我的rm和ls命令已经崩溃,我担心这是由于巨大的磁盘IO造成的,要删除这个大文件,输入: > ...

2015-03-23 21:10:18

阅读数:2070

评论数:0

各种排序算法的深入分析及java实现

排序一直以来都是让我很头疼的事,以前上《数据结构》打酱油去了,整个学期下来才勉强能写出个冒泡排序。由于下半年要准备工作了,也知道排序算法的重要性(据说是面试必问的知识点),所以又花了点时间重新研究了一下。   排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排...

2015-03-23 20:56:18

阅读数:1540

评论数:0

每个Java程序员必须知道的5个JVM命令行标志

本文是Neward & Associates的总裁Ted Neward为developerworks独家撰稿“你不知道5个……”系列中的一篇,JVM是多数开发人员视为理所当然的Java功能和性能背后的重负荷机器。然而,我们很少有人能理解JVM是如何进行工作的—像任务分配和垃圾收集、转动线程...

2015-03-20 22:34:00

阅读数:1805

评论数:0

Dom4j解析xml文件-递归遍历所有节点和属性

引言        Dom4j是java中常用读取xml文件的工具,就方便性和性能方面,一定程度要优于JDK中Domcument和SAX解析的,感兴趣的童鞋可以看看这篇文章 java解析XML的四种方式及比较,相关jar包可免费下载:dom4j-1.6.1.jar,下边我就分享一下用Dom4j对x...

2015-03-17 22:00:01

阅读数:71468

评论数:15

EasyUI-DataGrid多行动态选择性合并算法实现

jQuery EasyUI中有一个很好用的数据列表控件,即DataGrid控件,后台以一定的json格式传给控件就能在前台展示出来,功能很强大,不过有时需求需要这样即多行合并,如在列表中如果相同的部门字段上下合并达到Excel展示相同的效果,而且有时不止这一个字段的合并,还有其他字段根据内容相同或...

2015-03-12 23:03:53

阅读数:16185

评论数:8

华为 Java 编程军规,每季度代码验收标准

1、引言: 这个标准是衡量代码本身的缺陷,也是衡量一个研发人员本身的价值。华为作为一家全球化的 IT 公司,十几万员工,无论是人事管理,还是代码管理,都是一件不容易的事情,没有规范的约束,想想都是件可怕的事情。下面挑选了一些网上流传的编程规范,一起来学习下,以下内容不涉及基础的语法规范(请见 Re...

2015-03-10 13:07:42

阅读数:1596

评论数:0

代码典型缺陷分析—代码质量分析会上的报告

前几天事业部召开代码质量分析会,其中一个环节就是讲解一下一些产品的开发过程中一些代码缺陷,让我们的研发人员代码编写更加规范,是的,这个环节是我讲解的。         非常感谢部门经理给与我这个机会,这是我很好的一次锻炼机会,也是经理对我的信任,所以我不能辜负经理对我的信任,不能浪费掉这次锻炼的机...

2015-03-08 16:29:32

阅读数:1975

评论数:0

pinyin4j把中文句子(含有多音字字母)转成拼音(二维数组递归求所有组合情况返回list)算法实现!

介绍        Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换。拼音输出格式可以定制,然而真正的把含有多音字、数字、字母的中文句子转成拼音得到所有的组合情况却有很大难度,我看过很多有关博客或者帖子,被广大网友视为它的短板和不足,很多网友哀声叹气不能真正得到所有组合情况,一...

2015-03-05 21:43:44

阅读数:4411

评论数:6

StringBuilder性能真的优于StringBuffer?!!!!

大家都知道,StringBuilder和StringBuffer主要区别是前者不是线程安全的,后者是线程安全的,余JDK预留的对外接口几乎是一模一样的,所以在确定线程安全的环境的前提下,优先使用SringBuilder,肯定不相同条件下的StringBuffer性能要高,因为那维护同步数据的正确性...

2015-03-05 21:16:05

阅读数:5713

评论数:5

java序列化一定要应该注意的6个事项!

1、如果子类实现Serializable接口而父类未实现时,父类不会被序列化,但此时父类必须有个无参构造方法,否则会抛InvalidClassException异常。 2、静态变量不会被序列化,那是类的“菜”,不是对象的。 3、transient关键字修饰变量可以限制序列化。 4、虚拟机是否...

2015-02-15 11:06:21

阅读数:10669

评论数:0

IT行业,唯一不变的原则—“变”!

最为一个程序猿的我,尽管刚出来,但还是对这个行业的变化之快很感概。应该是,也确实是,IT行业因为“变”才能跟上和推动整个人类的发展,IT行业唯一不变的原则就是“变”,尤其是互联网上的技术,刚盛行没几年技术就能很快被更好更新的技术替代了,很多技术都经历这个淘汰的过程,从大一,到现在,我也是深有些体会...

2015-02-13 23:02:45

阅读数:1705

评论数:0

为何百度的产品大多数半死不活?

百度之殇,重搜索缺失   前两天在和一个在百度代理商工作的朋友喝茶,期间聊到移动互联网对传统搜索引擎流量的冲击。其开始颇为不以为然,“即使在移动互联网时代,百度仍是手机端的第一搜索引擎呀,外面平时在外面遇到问题还不会想到拿出手机,百度一下?”   可是他不明白的,问题就出在这儿。就像百度一直以...

2015-02-13 09:20:55

阅读数:1991

评论数:1

Array.asList:数组转list时你一定要知道的“陷阱”!

最近开发中,业务上处理,经常用到asList方法,这让我不经想起了它的很多容易让人犯错的地方或者误解的地方,所以就想抽出时间来,整理一下,和大家分享出来,深夜了,话不多说,主要以代码为主,简易的代码,你一看就知道了! 大家都知道这个方法是将数组转成list,是JDK中java.util包中Arra...

2015-02-12 22:57:47

阅读数:38383

评论数:16

读取Excel表格报错问题分析总结(用apache POI读取,表格稍微改动就报错导入不进去)

首先是建立在用apachePOI解析Excel时一定几率是能成功解析导入的,如果一点也不能的话,也可以参考看看我总结的原因,也许也是导致你屡次导入不能的原因之一。        这个问题是前天客户反应的,不用下载的好的模版套进内容再导入的话就报错,怎么也导入不进去,客户即想用从其他直接导出的数据导...

2015-02-11 22:21:02

阅读数:4560

评论数:1

String中substring方法内存泄漏问题

众所周知,JDK中以前String类中的substring方法存在内存泄漏问题,之所以说是以前,是因为JDK1.7及以后的版本已经修复了,我看都说JDK1.6的版本也存在这个问题,但是我本机上安装的1.6看了看源码不存在内存泄漏问题啊,又看了1.7的源码,和我本机的1.6的一样,是不是我的1.6版...

2015-02-08 21:12:01

阅读数:5574

评论数:0

雷军北大15分钟演讲:我至少有胆量去想

 大家好,非常感谢在“一刻演讲”跟大家交流,这么一个大的话题。昨天我在乌镇参加了全球互联网峰会,在这个会议上有马云,也有苹果公司的高级副总裁,主持人抛出了一个问题,说雷军你说你有一个目标,要用5到10年的时间做智能手机市场风格全球第一。我忙着点头,我的确说过,但是他们又问我,他去问苹果公司的...

2015-01-27 11:12:10

阅读数:3736

评论数:3

Java的静态代理、动态代理,CGLib的动态代理,使用动态代理基于AOP的AspectJ框架—深入探究

目录(?)[-] 一概念二jdk的静态代理一jdk动态代理一cglib 动态代理五 jdk动态和cglib动态代理比较六 面向切面编程 几个应用面向切面的概念使用aspectj实现aop编程 七总结   Java之代理... 1 一.         概念... 1 二.        ...

2015-01-10 21:36:02

阅读数:3083

评论数:0

java程序猿应该了解的10个面向对象设计原则(每次看都很有感悟,特意拿来和大家共享)

Java编程最基本的原则就是要追求高内聚和低耦合的解决方案和代码模块设计。查看Apache和Sun的开放源代码能帮助你发现其他Java设计原则在这些代码中的实际运用。 面向对象设计原则是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核...

2014-12-17 21:03:49

阅读数:1594

评论数:0

Redis上踩过的一些坑-美团

上上周和同事(龙哥)参加了360组织的互联网技术训练营第三期,美团网的DBA负责人侯军伟给大家介绍了美团网在redis上踩得一些坑,讲的都是干货和坑。     分为5个部分:    一、周期性出现connect timeout    二、redis bgrewriteaof问题    ...

2016-01-17 01:08:00

阅读数:33040

评论数:6

Redis的性能幻想与残酷现实

2011 年,当初选择 Redis 作为主要的内存数据存储,主要吸引我的是它提供多样的基础数据结构可以很方便的实现业务需求。另一方面又比较担心它的性能是否足以支撑,毕竟当时 Redis 还属于比较新的开源产品。但 Redis 官网宣称其是提供多数据结构的高性能存储,我们对其还是抱有幻想的。 ...

2016-01-17 00:45:28

阅读数:3904

评论数:0

Zookeeper的Paxos分布式一致性算法-类比的方式去理解

Paxos是一个基于消息传递的一致性算法,近几年被广泛应用于分布式计算中,Google的Chubby,Apache的Zookeeper都是基于它的理论来实现的,Paxos还被认为是到目前为止唯一的分布式一致性算法,其它的算法都是Paxos的改进或简化。Paxos只有在一个可信的计算环境中才能成立,...

2016-01-17 00:41:22

阅读数:3694

评论数:0

java动态加载指定的类或者jar包反射调用其方法-涉及其他jar中的类就报ClassNotFound问题分析及解决思路

在这篇博文中java动态加载指定的类或者jar包反射调用其方法,介绍动态加载指定的类,当时我是拿URLClassLoader介绍的,当然可以自定义一个ClassLoader重新对应的方法, 不过这个有现成的比自己重写更强大为何不用。        话不多说,很久不写博客了,时间太紧了,起因还是一个...

2015-11-25 22:52:29

阅读数:7105

评论数:2

用javascript实现java中的集合list(后续不断完善优化)

今天业务上的需求,前台需要类似java集合list或者set那样的工具或者类型来处理一个比价复杂的业务,js中是没有这种集合工具的,用数组吧考虑了下还是长久下,写个类似的简单工具,做成公共js,然后后期不断完善和优化,以后用起来就很方便了,这里就记录和分享下我的代码,确切的说很不完善,和java中...

2015-09-11 09:12:29

阅读数:2484

评论数:0

如何在高并发分布式系统中生成全局唯一Id

又一个多月没冒泡了,其实最近学了些东西,但是没有安排时间整理成博文,后续再奉上。最近还写了一个发邮件的组件以及性能测试请看《NET开发邮件发送功能的全面教程(含邮件组件源码)》 ,还弄了个MSSQL参数化语法生成器,会在9月整理出来,有兴趣的园友可以关注下我的博客。   分享原由,最近公司用到...

2015-09-01 09:00:14

阅读数:18701

评论数:4

oracle索引原理(b-tree,bitmap,聚集,非聚集索引)

一个B树索引只有一个根节点,它实际就是位于树的最顶端的分支节点。 可以用下图一来描述B树索引的结构。其中,B表示分支节点,而L表示叶子节点。     对于分支节点块(包括根节点块)来说,其所包含的索引条目都是按照顺序排列的(缺省是升序排列,也可以在创建索引时指定为降序排列)。每...

2015-09-01 08:57:30

阅读数:2657

评论数:0

Oracle宣布更多的Java 9 新特性

随着Oracle确认了其余的4个Java 9特性,下一代Java的计划开始变得更清晰了,Oracle已经公布了第二套Java 9特性。自从Oracle在今年早些时候宣布了3个新的API和模块化源码后,这是Oracle首次推出Java 9特性表。 统一JVM日志(JEP 158) Java 9将...

2015-08-20 08:54:03

阅读数:1424

评论数:0

Java8新特性浅析

欢迎阅读我编写的Java 8介绍。本教程将带领你一步一步地认识这门语言的新特性。通过简单明了的代码示例,你将会学习到如何使用默认接口方法,Lambda表达式,方法引用和重复注解。看完这篇教程后,你还将对最新推出的API有一定的了解,例如:流控制,函数式接口,map扩展和新的时间日期API等等。 ...

2015-08-20 08:52:24

阅读数:4383

评论数:0

Java7的那些新特性

本文介绍的java 7新特性更多的感觉像是语法糖。毕竟java本身已经比较完善了,不完善的很多比较难实现或者是依赖于某些底层(例如操作系统)的功能。不过java7也实现了类似aio的强大功能。但本文并未有此介绍。主要是 1.switch可以接受string类型而不像以前仅仅是int;2.异常cat...

2015-08-20 08:50:57

阅读数:6695

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭