- 博客(137)
- 资源 (75)
- 收藏
- 关注
转载 月薪3万的程序员都避开了哪些坑
程序员薪水有高有低,有的人一个月可能拿30K、50K,有的人可能只有2K、3K。同样有五年工作经验的程序员,可能一个人每月拿20K,一个拿5K。是什么因素导致了这种差异?我特意总结了容易导致薪水低的九大行为表现,避开这些大坑,你就离高薪不远了。习惯即刻回报他不懂得只有春天播种,秋天才会有收获。刚刚付出一点点,甚至还没有付出,就想要得到回报。技术刚刚掌握,能一边百度一边干活了就觉得该
2016-04-30 15:44:00
1007
转载 java synchronized详解
Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的一个synch
2016-03-15 21:50:54
532
转载 Java中静态变量的适用场景
Java类中的静态变量在程序运行期间,其内存空间对所有该类的对象实例而言是共享的,有些时候可以认为是全局变量。因此在某些时候为了节省系统内存开销、共享资源,可以将类中的一些变量声明为静态变量,通过下面的例子,你可以发现合理应用静态变量带来的好处: Java代码 public class WeekA{ static class Data {
2015-09-07 11:26:47
3668
转载 Jvm工作原理学习笔记
一、 JVM的生命周期1. JVM实例对应了一个独立运行的java程序它是进程级别a) 启动。启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例运行的起点b) 运行。main()作为该程序初始线程的起点,任
2015-08-12 20:31:35
447
转载 HashMap的工作原理
HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力。ConcurrentHashMap和其它同步集合的引入
2015-08-12 13:53:56
399
转载 两个对象值相同,有相同的hash code
两个对象值相同(x.equals(y) == true),则一定有相同的hash code。这是java语言的定义: 因为:Hash,一般翻译做“散列”,也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可
2015-08-12 13:28:01
10457
转载 HashMap实现原理分析
1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删除
2015-08-12 11:36:58
392
转载 深入Java集合学习系列:HashMap的实现原理
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2. HashMap的数据结构: 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本
2015-08-12 11:35:27
364
转载 《Spring 2.0技术手册》 读书笔记七-Spring的DAO框架(3)-JDBC事务管理
Spring提供了编程式事务管理(programmatic transaction management)与声明式事务管理(declarative transaction management)。由于编程式事务管理会导致Spring框架侵入代码,而且变更复杂,故不赞成使用编程式事务管理。因此该篇笔记以声明式事务管理为主。事务是一组原子操作的工作单元,在数据库存取中,就是一组SQL指令,它们
2015-08-11 10:45:46
571
转载 《Spring 2.0技术手册》 读书笔记七-Spring的DAO框架(2)-JDBC支持
在上篇笔记中,说道使用JDBC存取数据库时,流程大体相同,反复使用较为繁琐。因此Spring采用了Template-Callback模式来简化JDBC使用时的流程。Spring提供了org.springframework.jdbc.core.JdbcTemplate类,它被设计为线程安全,它提供的一些操作方法封装了JDBC流程。使用JdbcTemplate,首先需要一个DataSource
2015-08-11 10:44:11
588
转载 《Spring 2.0技术手册》 读书笔记七-Spring的DAO框架(1)-原理与DataSource注入
1.原理何为持久层?把内存里的数据固化到硬盘上的过程,通常以数据库文件的格式固化。DAO-Data Access Object,在应用程序中,需要使用到数据存取时,是通过一个数据存取接口来操作,而实际上进行数据存取的对象都要实现该接口,在规范的方法之中实现存取时的相关细节。Spring的DAO框架的基本原理,就是依赖接口,将应用程序与底层存取技术隔离开来。如图:数据存取接口
2015-08-11 10:42:47
456
转载 Spring原理概述
本文为转过来,对Spring进行了总体上的说明,有益于建立对Spring的总体把握和认识。 1、spring原理spring的最大作用ioc/di,将类与类的依赖关系写在配置文件中,程序在运行时根据配置文件动态加载依赖的类,降低的类与类之间的藕合度。它的原理是在applicationContext.xml加入bean标记,在bean标记中通过class属性说明具体类名、通过
2015-08-11 10:41:34
370
转载 Ext 动态添加grid 列数
在做报表的时候,需要将grid的列数做成活的,列数有数据库里的字段确定,这据需要将grid的列数做成动态的,经过多次实验已成,如下:后台返回的json: {'action':true,'message':'error!','data':[ {'number':'1','text1': '3','info1': '4
2015-08-11 10:32:25
2942
转载 xml的四种解析方法及源代码(SAX、DOM、JDOM、DOM4J)
这个也是自己转载的,现在对DOM还比较熟悉,自己不要只是复制代码,可以试着去熟悉其中的一两种,以后会有用处的。xml的四种解析方法及源代码(SAX、DOM、JDOM、DOM4J)第一种:SAX解析 SAX处理机制:SAX是一种基于事件驱动的API。利用SAX解析XML文档,牵涉到两个部分:解析器和事件处理器。解析器负责读取XML文档,并向事件处理器发生事件,如元素开始和元素结束
2015-08-11 09:51:39
492
转载 会话管理--session
什么是Session使用Cookie和附加URL参数都可以将上一次请求的状态信息传递到下一次请求中,但是如果传递的状态信息较多,将极大降低网络传输效率和增大服务器端程序处理的难度。Session技术是一种将会话状态保存在服务器端的技术 ,它可以比喻成是医院发放给病人的病历卡和医院为每个病人保留的病历档案的结合方式 。 客户端需要接收、记忆和回送 Session的会话标识号,Sess
2015-08-10 20:30:30
3306
转载 JVM学习笔记(四)------内存调优
首先需要注意的是在对JVM内存调优的时候不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,因此内存调优的时候要更多地使用JDK提供的内存查看工具,比如JConsole和Java VisualVM。对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数,过多的GC和Full GC是会占用很多的系统资源
2015-08-10 20:07:33
279
转载 JVM学习笔记(三)------内存管理和垃圾回收
JVM内存组成结构JVM栈由堆、栈、本地方法栈、方法区等部分组成,结构图如下所示:1)堆所有通过new创建的对象的内存都在堆中分配,其大小可以通过-Xmx和-Xms来控制。堆被划分为新生代和旧生代,新生代又被进一步划分为Eden和Survivor区,最后Survivor由From Space和To Space组成,结构图如下所示:新生代。新建的对象都是用新生代分配内存,
2015-08-10 20:06:26
296
转载 JVM学习笔记(二)------Java代码编译和执行的整个过程
Java代码编译是由Java源码编译器来完成,流程图如下所示:Java字节码的执行是由JVM执行引擎来完成,流程图如下所示: Java代码编译和执行的整个过程包含了以下三个重要的机制:Java源码编译机制类加载机制类执行机制Java源码编译机制Java 源码编译由以下三个过程组成:分析和输入到符号表注解处理语义分析和生成cla
2015-08-10 20:05:29
406
转载 JVM学习笔记(一)------基本结构
从Java平台的逻辑结构上来看,我们可以从下图来了解JVM:从上图能清晰看到Java平台包含的各个逻辑模块,也能了解到JDK与JRE的区别对于JVM自身的物理结构,我们可以从下图鸟瞰一下:对于JVM的学习,在我看来这么几个部分最重要:Java代码编译和执行的整个过程JVM内存管理及垃圾回收机制下面将这两个部分进行详细学习
2015-08-10 20:03:51
335
转载 Java解析xml的主要解析器: SAX和DOM的选择(附上新方法--Pull解析)
Java的xml解析器库有很多,总的来说,万变不离其宗的就是SAX和DOM解析器。SAX的包是org.xml.saxDOM的包是org.w3c.dom 1) DOM DOM 是用与平台和语言无关的方式表示 XML 文档的官方 W3C 标准。DOM 是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加
2015-08-10 14:05:13
516
转载 java中使用sax解析xml的解决方法
在java中,原生解析xml文档的方式有两种,分别是:Dom解析和Sax解析Dom解析功能强大,可增删改查,操作时会将xml文档以文档对象的方式读取到内存中,因此适用于小文档Sax解析是从头到尾逐行逐个元素读取内容,修改较为不便,但适用于只读的大文档本文主要讲解Sax解析,其余放在后面Sax采用事件驱动的方式解析文档。简单点说,如同在电影院看电影一样,从头到尾看一遍
2015-08-10 13:55:51
363
转载 【集合类型的并发】Collections.synchronizedList
1 :关注要点,为什么在有synchroniezed方法的同时会出现 Collections.synchronizedList 2 :知识背景: 您可能需要了解java Synchronized方法的加锁的各种机制,包括如何上锁,锁对象 3 : plus: 您需要不断的深化 Java加锁的各种机制Java代码 @NotThreadSaf
2015-08-06 09:39:19
445
转载 HashMap和Hashtable的区别
HashMap和Hashtable的区别导读:1 HashMap不是线程安全的 hastmap是一个接口 是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null key和null value,而hashtable不允许。 2 HashTable是线程安
2015-07-30 15:55:45
364
转载 java 泛型学习笔记
java泛型从JDK1.5开始出来的,虽然自己平时也有用到,但是一直没有全面的学习,今天在看myibatis3.0.1源码时,看到多处用到泛型设计,所以自己把泛型学习了下。 什么是泛型? 在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点就是被Object引用对象被“上塑”造型,对象的具体类型信息
2015-07-07 09:31:25
401
转载 红黑树数据结构剖析
红黑树是计算机科学内比较常用的一种数据结构,它使得对数据的搜索,插入和删除操作都能保持在O(lgn)的时间复杂度。然而,相比于一般的数据结构,红黑树的实现的难度有所增加。网络上关于红黑树的实现资料汗牛充栋,但是乏于系统介绍红黑树实现的资料。本文通过一个自己实现的红黑树数据结构以及必要的搜索,插入和删除操作算法,为大家更系统地剖析红黑树数据结构的实现。对于大部分数据结构,一般都会使用抽象数据类型
2015-06-16 17:05:40
473
转载 mybatis实战教程(mybatis in action),mybatis入门到精通
目录(?)[-]mybatis实战教程mybatis in action之一开发环境搭建mybatis实战教程mybatis in action之二以接口的方式编程mybatis实战教程mybatis in action之三实现数据的增删改查mybatis实战教程mybatis in action之四实现关联数据的查询mybatis实战教程mybatis in action之五与sprin
2015-06-12 18:11:51
487
转载 ibatis入门
iBatis 简介:iBatis 是apache 的一个开源项目,一个O/R Mapping 解决方案,iBatis 最大的特点就是小巧,上手很快。如果不需要太多复杂的功能,iBatis 是能够满足你的要求又足够灵活的最简单的解决方案,现在的iBatis 已经改名为Mybatis 了。官网为:http://www.mybatis.org/搭建iBatis 开发环境:
2015-06-12 18:02:41
300
转载 spring配置文件详解
Spring配置文件是用于指导Spring工厂进行Bean生产、依赖关系注入(装配)及Bean实例分发的"图纸"。Java EE程序员必须学会并灵活应用这份"图纸"准确地表达自己的"生产意图"。Spring配置文件是一个或多个标准的XML文档,applicationContext.xml是Spring的默认配置文件,当容器启动时找不到指定的配置文档时,将会尝试加载这个默认的配置文件。
2015-06-12 17:22:42
296
转载 Java虚拟机之自定义类加载器
创建用户自定义的类加载器 要创建用户自定义的类加载器,只需要扩展java.lang.ClassLoader类,然后覆盖它的findClass(String name)方法即可,该方法根据参数指定的类的名字,返回对应的Class对象的引用。自定义类加载器的例子 代码:package com.mengdd.classloader;import java.io
2015-06-08 19:59:07
484
转载 使用 Velocity 模板引擎快速生成代码
Velocity 是一个基于 Java 的模板引擎,它允许任何人仅仅简单的使用模板语言来引用由 Java 代码定义的对象,从而实现界面和 Java 代码的分离,使得界面设计人员可以和 Java 程序开发人员同步开发一个遵循 MVC 架构的 web 站点。但是在实际应用过程中,Velocity 又不仅仅被用在了 MVC 的架构中。Velocity 模板引擎介绍
2015-05-30 22:17:34
452
转载 iBatis查询select详解
是iBatis已经映射的语句类型,就是查询了,为了配合说明,这里再介绍两个标记:和,前者用来创建一个文本片段,这些片段可以组合起来创建完整的SQL语句;后者很显然就是包含的意思了。假设我们有如下代码段: Xml代码 sql id="select-user"> select * from users sql> sql id="select-co
2015-05-18 14:47:22
8727
转载 jquery如何调用自定义函数
第一种普通调用艾它社区/*jquery函数*/function fun1(){ $("div").css("color", "red"); };$(document).ready(function(){ /*jquery函数调用方式*/ $("button
2015-05-11 15:52:17
9368
转载 Eclipse远程调试Web应用
最近需要在原来的一个项目增加新的功能,把项目下下来后,发现项目超大,在Eclipse启动要不内存溢出,要不解析请求非常慢,无赖之下想到Eclipse远程调试.所谓Eclipse远程调试,就是源代码在Eclipse下,而应用程序通过本机和远程机器启动,Eclipse通过socket与应用进行通信,从而达到和本地一样效果的调试的目的.当然这种调试只适用于远程和Eclipse下的源代码相同的情况,如果E
2015-05-05 14:07:03
454
转载 使用Velocity将java代码转换成JS代码
为什么要用Velocity:项目中需要将JAVA代码生成JS代码,但是又不想在JS中import JAVA类,而且类中有很多枚举元素,如果手动的将枚举元素转换成JS对象会很耗时,所以采用Velocity模板技术让JAVA枚举对象自动转换成JS文件。准备工作:Velocity相关架包:Velocity-1.5.jar等熟悉Velocity相关语法下面贴上我写得代码要转换成JS的J
2015-04-29 15:52:55
3415
转载 Velocity语法大全
1、"#"用来标识Velocity的脚本语句,包括#set、#if 、#else、#end、#foreach、#end、#iinclude、#parse、#macro等;如:#if($info.imgs)#else#end2、"$"用来标识一个对象(或理解为变量);如如:$i、$msg、$TagUtil.options(...)等。3、"{}"用来明确标
2015-04-29 11:14:04
450
原创 java枚举类型enum的使用实例
java枚举类型enum的使用 java中定义常量有两种方法:final关键字和enum枚举。Java中的枚举类型采用关键字enum来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum类型。要了解枚举类型,建议大家先打开jdk中的Enum类简单读一下,这个类里面定义了很多protected方法,比如构造函数,如果要使用这些方法我们可以把枚举类型定义到当前类中。每个
2015-04-29 09:17:55
3563
转载 应用获取客户端IP小结
应用获取客户端IP的3种形式通过request.getRemoteAddr()这是最官方的获取客户端IP的方法,但当请求经过代理服务器后,这个方法返回的是代理服务器的IP. 所以我们线上通过这个方法取到的是nginx的IP: 127.0.0.1 request.getRemoteAddr() 通过X-Forwarded-For http头X-Forwarded-F
2015-04-24 11:25:41
1225
转载 java内存泄露和内存溢出(二)
虽然jvm可以通过GC自动回收无用的内存,但是代码不好的话仍然存在内存溢出的风险。最近在网上搜集了一些资料,现整理如下: —————————————————————————————————————————— 一、为什么要了解内存泄露和内存溢出? 1、内存泄露一般是代码设计存在缺陷导致的,通过了解内存泄露的场景,可以避免不必要的内存溢出和提高自己的代码
2015-04-01 22:25:02
607
转载 java内存泄露和内存溢出(一)
主要从以下几部分来说明,关于内存和内存泄露、溢出的概念,区分内存泄露和内存溢出;内存的区域划分,了解GC回收机制;重点关注如何去监控和发现内存问题;此外分析出问题还要如何解决内存问题。 下面就开始本篇的内容: 第一部分 概念 众所周知,java中的内存由java虚拟机自己去管理的,他不像C++需要自己去释放。笼统地去讲,java的内存分配分为两个部分,一个是数据堆,一
2015-04-01 22:23:06
489
转载 Java虚拟机工作原理详解
一、类加载器首先来看一下java程序的执行过程。 从这个框图很容易大体上了解java程序工作原理。首先,你写好java代码,保存到硬盘当中。然后你在命令行中输入[java] view plaincopyjavac YourClassName.java
2015-03-17 16:07:47
386
Java贪吃蛇游戏源代码
2011-08-28
java游戏开发学习指南
2011-08-28
Excel 鲜为人知的技巧
2011-08-27
改进的模糊逻辑偏微分方程去噪方法(清晰版)
2011-08-27
一种基于邻域噪声评价法的图像去噪算法(清晰版)
2011-08-27
一种基于模糊神经系统的图像去噪方法(清晰版)
2011-08-27
遗传算法在运动模糊图像恢复中的应用(清晰版)
2011-08-27
一种基于模糊理论的图像识别方法
2011-08-27
基于遗传算法的失真图像复原技术研究(高清晰硕士论文)
2011-08-26
基于神经网络的光学 4f 系统图像复原(高清晰硕士论文)
2011-08-26
盲图像恢复算法研究(清晰版)
2011-08-26
基于遗传算法的图像恢复技术研究(清晰版)
2011-08-26
一种基于边界处理的图像复原方法(清晰版)
2011-08-26
MATLAB 在多图像复原中的应用
2011-08-26
一种基于K 邻域平均法的小波图像恢复算法(清晰版)
2011-08-26
一种基于超完备字典学习的图像去噪方法(清晰版)
2011-08-26
数字图像处理技术的现状及其发展方向(清晰版)
2011-08-26
基于MATLAB的遥感图像恢复研究(清晰版)
2011-08-26
基于DCT 及高频屏蔽窗的小波图像去噪方法(清晰版)
2011-08-26
一种新的图像去噪方法(清晰版)
2011-08-26
基于物体轮廓信息的三维恢复研究(清晰版)
2011-08-26
任意运动形式模糊图像的恢复
2011-08-26
java 内部排序算法的性能分析
2011-08-25
java 电话号码查询系统(哈希表)
2011-08-25
java 停车厂模拟管理程序的设计与实现
2011-08-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人