- 博客(72)
- 资源 (2)
- 收藏
- 关注
原创 你还在为怎么学习烦恼嘛?思维导图学习法
Preface在上篇文章学Java该学什么?中描述Java知识体系时,我用到了一种工具-思维导图来建立起整个Java学习中的知识点。而这种方法被称之为思维导图学习法;思维导图学习法是我近来开始最常用的学习方法,也是我最推崇的一种学习方法,下面就让我带大家来认识一下思维导图学习法为什么用在学习的过程中,我们常常会使用记笔记、写博客的方式,这些都有利于提高我们的对知识的记忆;但慢慢的会发现,...
2019-03-09 13:35:50
575
原创 深入理解NIO系列 - Channel详解
Channel简介在Java NIO中,主要有三大基本的组件:Buffer、Channel和Selector,前面两篇文章我们具体介绍了Selector和Buffer,老规矩,就让我们继续慢慢地揭开Channel的神秘面纱吧!在Java NIO的世界中,Selector是中央控制器,Buffer是承载数据的容器,而Channel可以说是最基础的门面,它是本地I/O设备、网络I/O的通信桥梁,只...
2019-03-04 17:00:44
4171
1
原创 深入理解NIO系列 - Buffer详解
Buffer简介在Java NIO中,主要有三大基本的组件:Buffer、Channel和Selector,上一篇文章我们具体介绍了Selector,现在让我们深入理解下在实际编程中使用的最多的Buffer。定义首先先让我们来认识一下Buffer:A container for data of a specific primitive type.A buffer is a linear...
2019-03-03 19:04:23
755
1
原创 深入理解NIO系列 - Selector详解
Selector简述A multiplexor of {@link SelectableChannel} objects.参照Java doc中Selector描述的第一句话,Selector的作用是Java NIO中管理一组多路复用的SelectableChannel对象,并能够识别通道是否为诸如读写事件做好准备的组件Selector的创建过程如下:// 1.创建Selector...
2019-03-02 19:33:22
728
原创 深入理解NIO系列 - Java NIO类概述
本篇博客的初衷是记录了博主本次阅读系列博客(Java NIO入门教程详解–链接见文末)全文过程中的一些笔记,描述了Java NIO中核心类以及其方法的作用;Buffer属性capacity:容量limit:上界,缓冲区的临界区,即最多可读到哪个位置position:下标,当前读取到的位置(例如当前读出第5个元素,则读完后,position为6)mark:标记,备忘位置大小...
2019-03-02 19:32:29
738
原创 如何阅读GC日志
一名合格的java程序员应具备基本的使用JVM能力,了解其启动时的配置参数,并且能够理解GC的输出日志。sdfsd[百度](http://www.baidu.com)阅读GC日志是处理Java虚拟机内存问题的基础技能,它只是一些认为确定的规则,没有太多技术含量。 每一种收集器的日志形式都是由它们自身的实现而决定的,换而言之,每个收集器的日志格式都可以不一样。下面为两段典型的GC日志: 最前面
2015-07-20 13:14:53
682
转载 数据库索引
索引是对数据库表中一列或多列的值进行排序的一种结构,例如 employee 表的姓(name)列。如果要按姓查找特定职员,与必须搜索表中的所有行相比,索引会帮助您更快地获得该信息。 索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。 索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这
2015-07-15 17:42:28
442
转载 java 泛型
Technorati 标记: java,泛型,generic java泛型应用是java核心基础之一,从java 5开始引进泛型。如果你曾经使用过java Collection,那你已经算是接触过泛型了。在java Collection里使用泛型是一件很简单的事情,可泛型还具有很多你意想不到的作用。在深入了解泛型之前,首先来了解一下泛型的一些基本概念与原理。一、java 泛型
2015-07-04 14:26:15
628
原创 Java数据结构(一):线性表之开篇
1、线性表线性结构的特点是除第一个和最后一个数据元素外的每个数据元素只有一个前驱数据元素和一个后继数据元素。线性表是一个最简单的线性结构。线性表的操作特点主要是可以在任意位置插入和删除一个数据元素。线性表可以用顺序存储结构和链式存储结构存储。用顺序存储结构实现的线性表称作顺序表,用链式存储结构实现的线性表称作链表。链表主要有单链表,循环单链表和双向循环链表三种。顺序表和单链表各有优缺点,并且优缺点刚
2015-07-01 15:30:52
536
原创 Java数据结构(四):线性表之双向链表
java实现简单的双向链表,代码如下:package datastructure.linear.linked;import datastructure.exception.StructureException;import datastructure.linear.AbstractList;/** * @Description 双向链表实现 * @author mastery * @Date
2015-07-01 15:25:59
489
1
原创 Java数据结构(三):线性表之单链表
链式存储结构存储线性表的方法是把存放数据元素的结点用指针域构造成链。指针是指向下一个节点的引用,由数据元素域和一个或若干个指针域组成的一个类称之为结点。链式存储结构的特点是数据元素间的逻辑关系表现在节点的链接关系上。本例中实现的链表结构都是带头结点的。具体代码如下:package datastructure.linear.linked;import datastructure.exception.
2015-07-01 15:17:49
448
原创 Java数据结构(二):线性表之顺序表
顺序表采用数组实现,并且通过继承AbstractList类,下图为顺序表的存储结构图: 具体代码如下:package datastructure.linear.sequence;import datastructure.exception.StructureException;import datastructure.linear.AbstractList;public class Sequ
2015-07-01 14:46:31
630
2
原创 Ubuntu 查看和杀死进程
今天在netbeans中关闭webrick时,发现没有关闭掉,打入localhost:3000 依然显示页面,发现无法从nb中再次关闭只有进入ubuntu的进程下关闭查看进程:1,ps -e 命令 2,feng@feng:~$ sudo netstat -antupActive Internet connections (servers and establ
2015-06-11 21:31:37
561
原创 第一个maven构建
1.创建简单项目maven_test 1.1 使用archetype:create或archetype:generate插件生成简单项目 命令如下:mvn archetype:create -DartifactId=maven_test -DgroupId=com.mastery -DpackageName=com.mastery -Dversion=1.0
2015-06-11 20:20:52
433
原创 maven的安装
2.1. 验证你的Java安装尽管Maven可以运行在Java 1.4上,但本书假设你在至少Java 5上运行。尽管使用你操作系统上最新的稳定版本的JDK。本书的例子在Java 5或者Java 6上都能运行。java -versionjava version "1.6.0_02"Java(TM) SE Runtime Environment (build 1.6.0_02-b0
2015-06-11 17:26:45
498
原创 项目管理的三个重要概念检查点、里程碑、基线
项目生命周期中有三个与时间相关的重要概念,我发现很多人对这三个概念理解不准确,更不知道如何进行控制。因此把这三个概念论述得比较准确的一段文字贴出来,帮助大家理解。 这三个概念分别是 检查点( CheckPoint )、里程碑( Mile Stone )和基线( Base Line ),他们一起描述了在什么时候( When )对项目进行什么样控制。 检查点 指在规定的时间间隔内
2015-06-01 11:22:35
1430
转载 Java虚拟机参数设置
今天在加载一幅图片时,eclipse报出如下错误:“Exception in thread "main" java.lang.OutOfMemoryError: Java heap space ”google了一下原来是图片太大了。可以设置jvm堆的最大值来解决。 首先, 打开Eclipse软件,选择菜单栏run,在二级菜单中选择 Debug Configurations,然后:在
2015-05-13 15:45:55
871
转载 GC机制
tomcat启动参数,将JVM GC信息写入tomcat_gc.logCATALINA_OPTS='-Xms512m -Xmx4096m -XX:PermSize=64M -XX:MaxNewSize=128m -XX:MaxPermSize=64m -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -Xloggc:/var/log/searc
2015-05-13 14:09:26
452
转载 触发Full GC执行的情况
除直接调用System.gc外,触发Full GC执行的情况有如下四种。1. 旧生代空间不足旧生代空间只有在新生代对象转入及创建为大对象、大数组时才会出现不足的现象,当执行Full GC后空间仍然不足,则抛出如下错误:java.lang.OutOfMemoryError: Java heap space 为避免以上两种状况引起的FullGC,调优时应尽量做到让对象在Minor GC
2015-05-13 14:06:30
412
转载 Ubuntu 给 rhythmbox 装插件,使其显示歌词功能
插件名字:osd-lyricsStep1. 到下面的网站上下载对应的 osd-lyrics 版本的 deb 包 http://code.google.com/p/osd-lyrics/downloads/list 我选择的是 “osdlyrics_0.4.3-1~precise1_amd64.deb”Step2. 安装 osd-lyrics 依赖包 sudo apt-get install
2015-05-12 20:52:56
2039
转载 jdk1.6新特性
jdk1.6特性:一:Desktop类和SystemTray类在JDK6中 ,AWT新增加了两个类:Desktop和SystemTray。前者可以用来打开系统默认浏览器浏览指定的URL,打开系统默认邮件客户端给指定的邮箱发邮件,用默认应用程序打开或编辑文件(比如,用记事本打开以txt为后缀名的文件),用系统默认的打印机打印文档;后者可以用来在系统托盘区创建一个托盘程序.
2015-04-21 15:31:42
359
原创 添加/删除 windows下Git右键菜单
从网上搜索了些方法,总结一下 不显示右键菜单:方法1: 安装的时候选择不添加右键菜单。方法2(绝对有效): 运行CMD Windows 64 输入命令(地址为git安装地址)cd "C:\Program Files (x86)\Git\git-cheetah"regsvr32 /u git_shell_ext64.dll Win
2015-03-16 14:08:49
4319
转载 简单的java缓存实现
提到缓存,不得不提就是缓存算法(淘汰算法),常见算法有LRU、LFU和FIFO等算法,每种算法各有各的优势和缺点及适应环境。 1、LRU(Least Recently Used ,最近最少使用)算法根据数据的最近访问记录来淘汰数据,其原理是如果数据最近被访问过,将来被访问的几概率相对比较高,最常见的实现是使用一个链表保存缓存数据,详细具体算法如下:1. 新数据插入到链表头部;2.
2015-03-14 22:06:57
493
原创 删数问题
题目描述: 键盘输入一个高精度的正整数N(此整数中没有‘0’),去掉其中任意S个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的N和S,寻找一种方案使得剩下的数字组成的新数最小。 输出应包括所去掉的数字的位置和组成的新的正整数。(N不超过240位) 样例输入175438 4 样例输出13 思路:(典型的贪心策略,方法就是从简单入手,慢慢复杂。
2015-01-13 14:00:41
756
转载 最优服务次序问题
最优服务次序问题 一、问题描述: 设有n 个顾客同时等待一项服务。顾客i需要的服务时间为ti, 1≦i ≦n 。共有s处可以提供此服务。应如何安排n个顾客的服务次序才能使平均等待时间达到最小?平均等待时间是n 个顾客等待服务时间的总和除以n。 二、贪心选择策略假设原问题为T,而我们已经知道了某个最优服务系列,即最优解为A={t(1),t(2),….t(n)}(其中t(i)为第i个用户需
2015-01-12 22:56:36
2225
转载 程序存储问题
程序存储问题 1、问题描述: 设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是i l , 1 ≤i ≤n。程序存储问题要求确定这n 个程序在磁带上的一个存储方案,使得能够在磁带上存储尽可能多的程序。对于给定的n个程序存放在磁带上的长度,编程计算磁带上最多可以存储的程序数。 2、题目分析: 题目要求计算给定长度的磁带最多可存储的
2015-01-12 22:44:32
3671
转载 0-1背包问题
0-1背包问题: 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 这个问题的特点是:每种物品只有一件,可以选择放或者不放。算法基本思想:利用动态规划思想 ,子问题为:f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。其状态转移方程是:f[i][v]=m
2015-01-12 21:36:18
383
原创 游艇租用问题
题目:租用游艇(boat) 问题描述: 长江游艇俱乐部在长江上设置了n 个游艇出租站1,2,…,n。游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站i 到游艇出租站j 之间的租金为r(i,j),1<=i<=j<=n。试设计一个算法,计算出从游艇出租站1 到游艇出租站n 所需的最少租金。 编程任务: 对于给定的游艇出租站i 到游艇出租站j 之间的租金
2015-01-05 13:21:31
1307
1
原创 石子合并问题
【石子合并】 在一个圆形操场的四周摆放着n 堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。 试设计一个算法,计算出将n堆石子合并成一堆的最小得分和最大得分。 【输入文件】 包含两行,第1 行是正整数n(1 第2行有n个数,分别表示每堆石子的个数。 【输出文件】 输出两行。 第1
2015-01-05 12:38:15
497
原创 jdbc和hibernate的对比
jdbc的优点与缺点: * 优点: * 效率要高;(因为直接与底层打交道) * Connection pool * 缺点: * 代码比较繁琐,此在大量的try{}catch{}finally{}; * 没有data pool,做重
2014-12-03 20:04:20
580
原创 spring的注解使用,Autowired和Qualifier
Spring的注解在使用时须在xml中做如下配置<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/sc
2014-11-29 18:45:26
817
原创 兼容ie[6-9]、火狐、Chrome、opera、maxthon3、360浏览器的js本地图片预览
html代码 将网上的js本地图片预览整合了一下,希望对大家有用,如有其他浏览器不兼容且有解决办法,请给我留言,我将及时更新本文代码。 javascript代码//js本地图片预览,兼容ie[6-9]、火狐、Chrome17+、Opera11+、Maxthon3、360浏览器function PreviewImage(fileObj, imgPre
2014-09-30 10:31:51
738
转载 转jQuery获取和操作元素的属性和CSS样式
元素属性和Dom属性 对于下面这样一个标签元素:img id='img' src="1.jpg" alt='1' class="imgs">img> 我们通常将id,src,alt,class称为属性,也即元素属性.但是,当浏览器对标签元素进行解析时,会将元素解析为Dom对象,相应的,元素属性也就解析为Dom属性.元素属性和Dom属性只是在我们对其进行不同解析时的
2014-09-29 23:06:15
1071
原创 显式调用构造函数时不能引用实例字段请解释为什么“显式调用构造函数时不能引用实例字段”
这里的显式调用构造函数应该是指继承时子类的构造函数中调用父类的构造函数吧。对象初始化时,调用父类的构造函数,早于子类成员变量的初始化,所以如2楼所说实例字段还没初始化。
2014-08-21 22:30:36
1899
原创 数据库中的索引
数据库中的索引技术 索引的设计目标:为了提升数据库的性能.索引建立的规则:在经常进行连接,但是没有指定为外键的列上建立索引,而不经常连接的字段则由优化器自动生成索引。 在频繁进行排序或分组(即进行group by或order by操作)的列上建立索引。 在条件表达式中经常用到的不同值较多的列上建立检索,在不同值少的列上不要建立索引。比如在雇员表的“性别”列上只有“男”与“女
2014-08-20 08:29:46
554
原创 关于Struts2.1.6中配置 constant name="struts.devMode" value="true" 在tomcat启动时报错的问题
在网上学习尚学堂Struts2的过程中,遇到了这个问题,当在配置Struts.xml中,启动tomcat的时候报了一个这样的错误 严重: Exception starting filter struts2java.lang.NullPointerException at com.opensymphony.xwork2.util.FileManager$FileRevision
2014-08-11 20:26:05
819
原创 JavaEE动态改变请求参数
@SuppressWarnings("unchecked") Map map=request.getParameterMap();//获得请求参数集合 Method method=null; method=map.getClass().getDeclaredMethod("setLocked",boolean.class); //获得修改 参数
2014-08-10 11:07:36
575
原创 HTML页面获取URL参数
参数接收 测试function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) return
2014-08-10 10:13:32
7450
原创 JDBC上关于数据库中多表操作一对多关系和多对多关系的实现方法
我们知道,在设计一个JAVA bean的时候,要把这些BEAN 的数据存放在数据库中的表结构,然而这些数据库中的表直接又有些特殊的关系,例如员工与部门直接有一对多的关系,学生与老师直接又多对多的关系,那么这些表的关系如何表示呢?首先在建立数据库的时候就应该建立这样的对应关系。一对多 ,只要建立两个表就能建立这样的关系,因为你可以把多方的那个表设置一个Foreign Key 属性 ,下面是一
2014-08-09 16:33:18
3529
原创 VO , PO , BO , QO, DAO ,POJO,
O/R Mapping 是 Object Relational Mapping (对象关系映射)的缩写。通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据。在 O/R Mapping 的世界里,有两个基本的也是重要的东东需要了解,即 VO , PO 。 VO ,值对象 (Value Object) , PO ,持久对象 (Persisent Object) ,它
2014-08-04 12:47:39
459
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人