
【Java】
文章平均质量分 54
xiazdong
ECNU-SEI
展开
-
想成为Java高手的25个学习目标
本文将告诉你学习Java需要达到的25个目标,希望能够对你的学习及找工作有所帮助。对比一下自己,你已经掌握了这25条中的多少条了呢? 1.你需要精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF,J2EEDP)以及综合模式。你应该了解UML,尤其是 class,object,interaction以及statediagrams。 2.你需要学习Java语言的基础知识以及它的转载 2012-12-21 20:55:57 · 3738 阅读 · 2 评论 -
根据value字段对map进行排序
一般来说,我们通常都是通过map中的key字段进行排序,步骤如下:一、根据key对map进行排序TreeMap map = new TreeMap(new Comparator(){ //直接添加比较器public int compare(String o1,String o2){ ..... }});但是却没有直接原创 2011-11-04 18:06:44 · 2396 阅读 · 0 评论 -
SQL注入问题总结
一、SQL注入介绍SQL注入就是将原本的SQL语句的逻辑结构改变,使得SQL语句的执行结果和原本开发者的意图不一样;方法:在表单中将命令当作用户输入提交给程序;二、SQL注入范例这里我们根据用户登录页面 用户名: 密 码: 预先创建一个表:create table user_table( id int Primary原创 2012-03-19 13:53:38 · 6654 阅读 · 1 评论 -
【Java】多线程
多线程在我操作系统的博客中也有涉及,而这里我们讲一下java中的多线程实现。先回顾一下,进程是运行中的应用程序,一个应用程序可以同时启动多个进程。同一个进程的线程是共享一个地址空间的。抢占式:随时能够中断另一个任务。非抢占式:只有一个任务同意被中断时才能被中断。会导致死锁。多线程:共享变量因此便于通信,创建开销少。多进程:相互独立,通信有共享内存和消息传递,创建原创 2011-08-09 22:54:00 · 5908 阅读 · 5 评论 -
Eclipse插件本地扩展安装
Eclipse常用的插件安装方法有两种:1.在线安装;2.本地直接复制黏贴,把features和plugins黏贴到Eclipse 的features和plugins文件夹; 在线安装的缺点就是网络问题;本地复制黏贴的缺点就是删除麻烦,不灵活; 这里介绍的是扩展本地方法,步骤如下:1.在Eclipse安装主目录创建一个links文件夹;2.在links文件夹下创原创 2012-01-14 22:03:07 · 10944 阅读 · 1 评论 -
java面向对象易忘点(1)
一、面向对象三大特征:封装:对外部不可见。继承:扩展类的功能。多态:方法重载,对象多态。二、数据类型:(1)普通数据类型:(2)引用数据类型:数组,对象。类属于引用数据类型。因此有栈内存和堆内存的引用关系。 Person p = null; //开辟栈内存 p = new Person("张三",20); //开辟堆内存 对象保存在栈内,属性原创 2011-08-27 17:22:10 · 1683 阅读 · 0 评论 -
内省(Inrospector)学习总结
一、Introspector介绍内省主要为了剖析JavaBean;JavaBean:(1)一个public的类;(2)主要用于存储数据;(3)getter & setter方法;需要涉及Inrospector,BeanInfo,PropertyDescriptor等类;二、Introspector开发package org.xiazdong.原创 2012-03-10 13:48:35 · 1581 阅读 · 0 评论 -
Java反射研究(2)
接Java反射研究(1)九、调用特定方法Method m = c1.getMethod("funcname",Class...c); //funcname表示调用方法的名称,c表示参数的Class对象例如:Method m = c1.getMethod("fun",String.class,int.class); 表示调用fun(String,int);函数原创 2011-11-09 23:44:44 · 3623 阅读 · 0 评论 -
Java反射研究(1)
java.lang.reflect包Constructor、Field、Method的父类是AccessibleObject;说明:反射主要用于开发框架,即制作框架;一、获得Class对象Class c = Class.forName("classname"); 抛出ClassNotFoundException二、获得实现接口Class原创 2011-11-08 22:16:03 · 2941 阅读 · 2 评论 -
枚举复习总结
一、枚举介绍枚举的目的是为了限定一个类的实例,比如Gender只有男、女;特点:(1)enum其实是一个特殊的class;(2)enum类的构造函数必须是私有的;(3)枚举类可以继承抽象类,实现接口;(4)switch接受enum值;语法为:enum 类名{ 实例1,实例2,实例3.....; 方法、属性、构造函数}二、enum语法原创 2012-03-07 22:25:51 · 1363 阅读 · 0 评论 -
JDK、JRE、JVM之间的关系
如果安装了JDK,会发同你的电脑有两套JRE,一套位于 /jre 另外一套位于 C:/Program Files/Java/j2re1.4.1_01 目录下后面这套比前面那套少了Server端的Java虚拟机,不过直接将前面那套的Server端Java虚拟机复制过来就行了。而且在安装JDK可以选择是否安装这个位于 C:/Program Files/Java 目录下的JRE。如果你只转载 2012-03-04 23:20:30 · 1082 阅读 · 1 评论 -
Java compiler level does not match the version of the installed Java project facet
编译java工程出现错误:Java compiler level does not match the version of the installed Java project facet是版本不一致的问题,查看java path没有问题,一样的jre。不解。Google 搜索问题一:问:项目图标报错,Problems 试图有一条错误显示“Java compiler level转载 2012-02-10 17:03:42 · 1534 阅读 · 0 评论 -
windows 7 开启telnet
Windows 7出于安全性考虑屏蔽了Telnet。如何开启呢?在开始菜单-》控制面板-》程序界面中,点“打开或关闭Windows功能”如下图然后在弹出的”Windows功能”界面中,选择上Telnet客户端,点击确定按钮。如下图通过上面这些设置,就打开了Windows默认屏蔽的Telnet功能了。原创 2012-01-17 12:31:47 · 1520 阅读 · 0 评论 -
java文件添加包语句后的编译和运行问题
对于初学者来说,常遇到的一个问题就是添加包语句后源文件不能编译成功;一般来说有两种处理此种情况的方法,如图所示;这里我们假定package org.xiazdong;Hello.javapackage org.xiazdong;public class Hello{ public static void main(String args[]){原创 2012-01-13 15:28:45 · 3892 阅读 · 1 评论 -
java集合
集合提供给我们的是许多实用的数据结构。如果熟悉C++的STL,就会更容易接触java的集合类,C++的STL的缺点是复杂而且比较低效。对象的引用强度分为四个级别:在java.lang.ref中1.强引用:当内存不足时,这些对象也绝对不会被回收。2.软引用:当内存不足时,会回收对象内存,用来实现内存敏感的告诉缓存。3.弱引用:无论内存是否紧张,只要被垃圾回收器发现,则立即原创 2011-08-11 16:04:28 · 7743 阅读 · 4 评论 -
Java 日志
日志是记录程序员感兴趣的事情,通过日志,可以有效判断出错位置等问题;因此怎样记录日志是很关键的;java.util.logging包是JDK的日志开发包;一、日志7个等级Logger logger = Logger.getLogger(Person.class.getName()); //创建Person类的日志对象;日志对象时属于某个类的,即有多个日志对象。原创 2012-01-11 09:58:02 · 4126 阅读 · 2 评论 -
Java生成javadoc
一、Javadoc介绍Javadoc其实平常我们都会见到,JAVASE的API文档就是一个javadoc,很明显,Javadoc的目的是为了能够让外部客户理解我们的代码并使用我们对外的接口。记住:编写Javadoc的时候只需要对外的接口即可,不需要内部的接口也编写Javadoc注释;二、Javadoc注释一般我们的注释形式是:(1) //(2) /*原创 2012-01-07 19:02:40 · 5881 阅读 · 0 评论 -
java网络编程
网络基本知识:在java中网络程序有两种协议:TCP和UDP,TCP通过握手协议进行可靠的连接,UDP则是不可靠连接。IP地址:用于标记一台计算机的身份证。IP地址由网络地址(确定网络)和主机地址(网络中的主机)组成。子网掩码:为了区分网络地址和主机地址。IP地址分为A类地址、B类地址、C类地址(常用)、D类地址、E类地址。127.0.0.1(localhost)是本机地址原创 2011-08-24 09:10:02 · 24681 阅读 · 11 评论 -
二维码的编码与解码辅助类
需要的jar包:QRCode.jar效果图:以下为我封装的辅助类,提供的API只有:(1)encode(String str);(2)encode(String str,File f);(3)encode(String str,OutputStream out);(4)decode(File f);(5)decode(InputS原创 2012-05-18 17:40:26 · 3044 阅读 · 0 评论 -
24点破解的Java实现
一、基本思想要想计算24点游戏的结果,则必须要采用基于搜索的算法(即穷举法)对每种情况进行遍历,我们怎么样才能遍历所有的情况呢?其实我们只要总结一下,还是有规律可以找的。输入a、b、c、d,组成a Op1 bOp2 c Op3 d的表达式,其中先算哪个子表达式未知,一共有5种计算方式,如下图所示: 此时如果要实现该程序,需要存储5棵树,为了能够原创 2012-06-26 23:22:24 · 6796 阅读 · 1 评论 -
JSON for java入门总结
一、JSON介绍JSON(JavaScript Object Notation),类似于XML,是一种数据交换格式,比如JAVA产生了一个数据想要给JavaScript,则除了利用XML外,还可以利用JSON;JSON相比XML的优势是表达起来很简单;官网:http://www.json.org/JSON是AJAX中的X(就是可以取代XML); -----原创 2011-12-10 16:18:43 · 101147 阅读 · 55 评论 -
\r与\n的区别
\r : return 到当前行的最左边。\n: newline 向下移动一行,并不移动左右。Linux中\n表示回车+换行;Windows中\r\n表示回车+换行。Mac中\r表示回车+换行。历史:回车”(Carriage Return)和“换行”(Line Feed)这两个概念的来历和区别。 在计算机还没有出现之 前,有一种叫做电传打字机(Teletype原创 2012-11-04 14:16:41 · 79491 阅读 · 2 评论 -
Java实现内联函数
C++是否为内联函数由自己决定,Java由编译器决定。Java不支持直接声明为内联函数的,如果想让他内联,则是由编译器说了算,你只能够向编译器提出请求。final除了不能被override外,还可能实现内联。如果函数为private,则也可能是内联的。总的来说,一般的函数都不会被当做内联函数,只有声明了final后,编译器才会考虑是不是要把你的函数变成内联函数。原创 2012-11-03 15:46:12 · 6008 阅读 · 0 评论 -
ArrayList 源码分析
在我们刚学Java时老师一定会说ArrayList是很好用的变长数组,你只要尽管插入删除就可以了,比C++的数组控制简单多了,ArrayList是典型的自增长数组。private int size; //数组中实际元素的数量capacity表示数组的总大小,比如arr = new int[5],则capacity=5.//initialCapacity为初始的数组大小原创 2012-11-03 13:10:46 · 2073 阅读 · 0 评论 -
Java编程中“为了性能”需做的26件事
最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了。下面是参考网络资源总结的一些在Java编程中尽可能要做到的一些地方。1.尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以转载 2012-08-27 17:23:09 · 1536 阅读 · 0 评论 -
BufferedImage与byte[]互转
一、需要用到的类java.awt.image.BufferedImage;javax.imageio.ImageIO;java.io.*;二、为什么要将BufferedImage转为byte数组在传输中,图片是不能直接传的,因此需要把图片变为字节数组,然后传输比较方便;只需要一般输出流的write方法即可;而字节数组变成BufferedImage能够原创 2011-11-02 21:24:54 · 118383 阅读 · 7 评论 -
CSVBeans:Java解析CSV
一、CSV和CSVBeans介绍CSV:Comma Seperated Values;描述:一行代表一个记录,并且一个记录有多个域(属性),每个属性用逗号(或其他符号)分隔。CSVBeans开源项目:将CSV的每行数据转换成JavaBean的开源工具;Download URL:http://sourceforge.net/projects/csvbeans/files/原创 2012-08-17 16:14:33 · 6414 阅读 · 0 评论 -
二分查找实现
看了“只有10%程序员能正确实现二分查找算法“这篇文章,闲着无聊,就实现一下他所说的正确的二分算法;其实说穿了为什么只有10%的程序员会写错,只是因为没有考虑一些意外情况罢了;思想:二分查找能解决问题:预排序数组的查找1.使用泛型将二分查找的对象泛化.2.考虑以下几种意外情况:如果数组为null,则抛异常;如果没有找到,则返回-1;其实我也不清楚原创 2012-07-30 11:19:48 · 1659 阅读 · 0 评论 -
jxl读取excel文件异常:Unable to recognize OLE stream
解决方法:新建excel文件,手动复制原文件内容至新文件。然后删除原文件,并将新文件的文件改成原文件的文件名。然后用jxl读取成功。原创 2012-08-13 17:54:08 · 6156 阅读 · 1 评论 -
JAR creation failed. See details for additional information解决方案
在导包时不要一步点finish先点next 把此处两个地方勾掉转载 2012-08-07 13:46:54 · 11293 阅读 · 3 评论 -
随机生成字符串实现
给定一个字符集合,给定随机生成的字符串的长度,即可随机生成字符串;比如{'a','.....,'z'}及长度5,则随机生成一个长度为5的字符串; package xiazdong.util;import java.util.Random;/*根据给定的char集合,生成随机的字符串*/public class StringWidthWeightRandom {原创 2012-07-02 17:26:32 · 10449 阅读 · 0 评论 -
随机获取用户定义的字符串
此类需要使用之前讲到的IntegerWeightRandom类;示例:给定"a"赋予权重100,"b"的权重为50,则getNextString()时取"a"的概率要更大;package org.xiazdong.util;/*给定字符串集合,设定每个字符串的权重,返回随机字符串*/public class StringRandom { private Stri原创 2012-07-02 17:23:48 · 1986 阅读 · 0 评论 -
随机获得用户定义的整数实现
辅助类提供了3个方法:(1)addWeightNumber(int weight,int num):为某个num赋予weight权重,此权重代表此数字在随机获取时的获得概率;权重大, 则获得的概率就大,权重小,则获得的概率就小。(2)addWeightNumRange(int weight,int numfrom,int numto,int ... numExcludes);同时为连续多个原创 2012-07-02 17:11:50 · 1609 阅读 · 0 评论 -
多线程下载辅助类实现
如需转载,必须注明转自: http://blog.youkuaiyun.com/xiazdong/article/details/7738298使用声明:类名:MultiThreadDownloadUtilAPI:(1)download(String path,int count);path:文件URL;count:线程数量; package org.xiazdong.原创 2012-07-11 22:49:32 · 2400 阅读 · 0 评论 -
在Java程序中设置代理
Run as --> Run configuration: -Dhttp.proxyHost=[代理IP地址] [空格] -Dhttp.proxyPort=[端口]比如:-Dhttp.proxyHost=10.56.2.3 -Dhttp.proxyPort=8080原创 2012-07-12 11:21:20 · 2298 阅读 · 1 评论 -
配置EditPlus使其可以编译运行java程序
我们可以使用EditPlus把javac和Java命令集成进来,从而直接在EditPlus编辑器中编译运行java程序。步骤如下: 1. 单击EditPlus主菜单的“工具”,单击“工具”菜单中的“配置用户工具”项目; 2. 单击对话框中“群组名称”来设置工具组的名称,例如输入“编译和运行Java”,单击确定; 3. 选择对话框中的“添加工具”按钮,并选择转载 2012-07-10 20:48:52 · 3049 阅读 · 2 评论 -
Eclipse出现Access restriction : The type BASE64Decoder is not accessible due to restriction问题
只需要build path中先移除JRE System Library ,再添加Library即可;原创 2011-12-09 23:35:32 · 2075 阅读 · 0 评论 -
File实例:批量更改文件名
网上下载了视频教程,然后发现文件名太长了。。。然后就想把文件名换掉。。。然后就写了以下的程序。虽然很简单。package org;import java.io.File;public class DeleteTest { public static void main(String[] args) { String key = ""; if (args.length原创 2011-11-30 20:57:03 · 1344 阅读 · 0 评论 -
String类剖析
一、两种实例化方式:String str = “abc”;String str = new String("abc");一个字符串就是String的匿名对象。"hello".equals(str) 一个字符串能够调用一个函数,可以看出,一个字符串是Strin原创 2011-08-26 18:43:39 · 1928 阅读 · 4 评论 -
正则表达式
正则表达式主要在java.util.regex包中,有Pattern和Matcher类。Pattern类主要是正则匹配规则,Matcher是用某个正则表达式去匹配字符串。Pattern和Matcher提供的常用方法:Pattern p = Patter原创 2011-09-20 14:53:46 · 2070 阅读 · 1 评论