摘要:
自定义泛型 用于放置泛型的类型参数的尖括号应出现在方法的其他所有修饰符之后和在方法的返回类型之前,也就是紧邻返回值之前。按照惯例,类型参数通常用单个大写字母表示。 l交换数组中的两个元素的位置的泛型方法语法定义如下: static <E> void swap(E[] a, int i, int j) { E t = a[i]; a[i] = a[j]; a[j] = t; }//或用一个面试题讲:把一个数组中的元素的顺序颠倒一下 只有引用类型才能作为泛型方法的实际参数,swap(new int[3],3,5);语句会报告编译错误。 除了在应用泛型时可以使用extends限定... 阅读全文
随笔分类 - java
Java反射
2012-07-16 15:15 by java线程例子, 889 阅读, 收藏,
摘要:
JAVA反射机制定义: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。JAVA反射机制主要提供了以下功能:1.在运行时判断任意一个对象所属的类2.在运行时构造任意一个类的对象3.在运行时判断任意一个类所具有的成员变量和方法(通过反射甚至可以调用private方法)4.在运行时调用任意一个对象的方法(*****注意:前提都是在运行时,而不是在编译时)在JDK中,主要由以下类来实现Java反射机制,这些类都位于java.lang.ref. 阅读全文
Java温故知新 - 字符串
2012-07-08 09:46 by java线程例子, 241 阅读, 收藏,
摘要:
一、常量池对于源程序中出现的字符串常量,当程序运行时,会统一保存到一个常量池中进行缓存。对引用这些缓存在常量池中的字符串的变量进行比较,用==也会得到正确的结果。但在运行时,对字符串的各种操作如+、substring等等,都是会产生新的字符串对象的。但是强大的编译器会对字符串常量的拼接进行优化,诸如s3 = "hell" + "o"时,s3仍然会指向常量池中的字符串。但对于变量的运算,总不能要求虚拟机执行诸如s1 + s2时还要判断结果是否已在常量池中了吧。因此,要用equals而非==去判断两个字符串是否相等。 public static void m 阅读全文
Java温故知新 - Switch语句
2012-07-06 21:51 by java线程例子, 10423 阅读, 收藏,
摘要:
一、基本用法switch的case语句可以处理int,short,byte,char类型的值,但是不能处理long,String等类型。因为short,byte,char都会转换成int进行处理,这一点也可以从生成的字节码看出。 char a = 'e'; switch (a) { case 'c': System.out.println("In case c"); break; case 'd': System.out.println("In case d"); break; default: Syste 阅读全文
Java版的Redis
2012-06-20 16:12 by java线程例子, 871 阅读, 收藏,
摘要:
Redis是一个基于Key-value结构的Nosql数据库,它支持各种常见的数据结构以及非常方便的操作,与其说它是一个数据库,不如说它是一个保存各种数据结构的服务器。今天闲来没事,用Java集合类实现了Redis的一些基本功能,算是温习下Java了。1.Redis入门Redis的Key键值为字符串,但是Value值支持许多种类型,如String字符串,List链表,Set无序集合,SortedSet有序集合,甚至是Hash表。各种数据结构通过不同的存取方法来区分。如Set/Get直接将值存为String,LPush/LPop/LRange将值存到一个链表中,SAdd/ZAdd则区分了无序和有 阅读全文
这个星期一直在努力的——微博系统
2012-06-09 01:34 by java线程例子, 550 阅读, 收藏,
摘要:
C/S微博系统(Java实现):现在还只是微博的雏形。要添加的功能还有很多。现在要开始准备考试了。所以只能暂时搁置了,暑假再好好把它完善。。目前实现的:1、发布微博(可带图片)2、转发3、首页内容4、查看自己发的微博5、查看别的用户6、粉丝或关注7、服务端处理各种请求以下是目前数据库的设计1、存放一条微博2、用户3、粉丝和关注最近经常熬夜。难到程序员就是天生的夜猫子。哈。睡觉去了。晚安!明天,继续奋斗! 阅读全文
Java实现Qt的SIGNAL-SLOT机制
2012-06-04 22:41 by java线程例子, 408 阅读, 收藏,
摘要:
SIGNAL-SLOT是Qt的一大特色,使用起来十分方便。在传统的AWT和Swing编程中,我们都是为要在监听的对象上添加Listener监听器。被监听对象中保存有Listener的列表,当相关事件发生时,被监听对象会通知所有Listener。而在Qt中,我们只需通过connect方法连接两个对象上的方法就可以了,非常方便、优雅地实现了传统的观察者Observer模式。Qt是如何办到的呢?对于发出SIGNAL的对象,我们需要在其头文件定义中声明Q_Object宏,之后Qt的预处理器MOC会为我们自动添加上相应的代码来实现SIGNAL-SLOT机制。这与AspectJ自定义了Javac编译器很类 阅读全文
Java写的为图片添加水印的软件(含源代码)
2012-05-01 00:28 by java线程例子, 282 阅读, 收藏,
摘要:
界面如下:效果图如下:拖拉操作如下:支持功能:1、可设置水印的字体(字体名字、样式、大小)2、可设置水印的位置(暂时只支持6个位置)3、可设置水印的透明度,同时支持缩放4、支持预览(按Esc键退出)5、支持批量添加水印6、支持拖拉:拖拉进入主界面试试(会自动预览第一张图片)希望各位童鞋也分享分享自己的。想想中国那么多程序员,若大家都分享一些自己的,中国的IT行业将会是怎样呢?呵!睡觉去了!晚安!出现的问题与解决方法:1、水印出来在图片上字符变成了方框。这主要与字体的选择有关。建议在加水印时先预览下效果。2、JPG的图片加水印后失真。暂时的解决方法是改变水印后图片格式(在保存路径的文本框直接修改 阅读全文
使用命令模式,告别if-else
2012-04-21 19:58 by java线程例子, 588 阅读, 收藏,
摘要:
直接看下面的例子:下面一个按钮当做一个命令package command; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel; public class ButtonPanel extends JPanel implements ActionListener{ private static final long serialVer... 阅读全文
重要的Java模式——命令模式
2012-04-21 19:00 by java线程例子, 358 阅读, 收藏,
摘要:
命令模式提供一个处理用户请求的标准接口。每个请求被封装名为Command的对象中。命令模式中的三个类分别是:Command、CommandManager和Invoker。Command Command类表示单个行为的封装。应用程序中的每个行为,例如保存或者删除,都会被建模为命令。这样,应用程序的行为就是命令对象的集合。要向应用程序添加行为,开发人员要做的就只是实现附加的命令对象。如下:package command; public interface Command { public void execute();
}
Command接口,只是含有一个execute方法,其它的实现... 阅读全文
重要的Java模式——策略模式
2012-04-12 23:46 by java线程例子, 233 阅读, 收藏,
摘要:
策略模式允许在允许中替换算法。要实现该解决方案,需要将每个算法表示为Strategy(策略)类。然后应用程序委托当前的Strategy类来执行特定于策略的算法。1、Strategy 下面示例使用Role(充当Strategy)接口来声明策略行为和俩个具体来——Buyer和Seller来实现不同的行为:Role接口:package strategy;
public interface Role { public boolean siSatisfied(Product product, double price);
}Seller类:希望销售的产品都设置了20%的利润率package strat. 阅读全文
新浪微博客户端开发第一步
2012-04-09 01:34 by java线程例子, 480 阅读, 收藏,
摘要:
一、获得开发应用所需的“通行证”App Key和App Secret 首先必须要有新浪的账号。再打开http://open.weibo.com/登录你的账号。点击“我是开发者”:点击“创建应用”:点击“客户端”:这时,会弹出一个填写开发者信息的页面:填写完再验证完邮箱,来到创建应用的页面:点击“应用信息”下的“基本信息”,找到AppKey和AppSecret二、下载SDK接着:到http://open.weibo.com/wiki/SDK下再所需的SDK,这里是以Java为例:可以直接到http://code.google.com/p/weibo4j/中下载到所需的JavaSDK。将SDK导入 阅读全文
Java EE连接SQL Servet 2008的时遇到的一些问题及解决方法
2012-03-27 01:11 by java线程例子, 390 阅读, 收藏,
摘要:
错误一、com.microsoft.sqlserver.jdbc.SQLServerException:The TCP/IP connection to the host localhost, port 1433 has failed. Error:Connection refused: connect. Please verify the connection properties and checkthat a SQL Server instance is running on the host and accepting TCP/IPconnections at the port, an 阅读全文
Java7的一个新类——JLayer:装饰的Swing组件
2012-03-13 21:01 by java线程例子, 700 阅读, 收藏,
摘要:
Java7中的一个新的类,JLayer,也已被添加到提高的Java Swing的能力。JLayer主要用于装饰的Swing组件。你可以用它改变如何绘制组件,以及它们如何响应事件。下面是这个类的一个简单的例子:先看运行结果:1、鼠标进入登陆框时:聚光灯效果(Spotlight)2、点击登录按钮:import java.awt.AWTEvent;
import java.awt.AlphaComposite;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Composite;
import java.awt. 阅读全文
Java数据库操作时一点常见的错误
2012-02-25 16:36 by java线程例子, 304 阅读, 收藏,
摘要:
数据库连接是我们通常会创建出Connection、Statement、ResultSet的对象,新手可能会如下使用:Connection connection=DriverManager.getConnection(“数据库 的url”);
Statement statement =connection.createStatement();
//接着是一些操作数据库的JDBC代码
ResultSet resultSet = ……
……
resultSet.close();
statement.close();
connection.close();以上方法是错误的。因为如果与数据库创建... 阅读全文
Servlet——Java EE应用中另一种常用的组件
2012-02-24 19:58 by java线程例子, 499 阅读, 收藏,
摘要:
1、Servlet是Java EE应用中另一种常用的组件,是继JDBC后,Java EE技术的第二个重要发明。2、JSP与Servlet的区别:JSP是嵌入Java代码的HTML页面,JSP页面是转换为Servlet来执行的。Servlet是嵌入了HTML的Java类。3、Servlet执行请求和响应的处理。4、在Web应用程序中,<servlet>元素是用于描述Servlet的基本元素。<servlet>可以有下面的子元素:·<icon>
·<servlet-name>:定义一个用户友好的名称,用于表示所用到的资源。
阅读全文
浅析JTable与TableModel、TableCellRenderer、TableCellEditor接口——使用JComboBox显示单元格的值
2012-02-17 21:42 by java线程例子, 553 阅读, 收藏,
摘要:
如同其它的Swing组件,JTable使用MVC(模型、试图、控制器)设计方式,将可视化组件(JTable实例)从其数据(TableModel实现)中分离出来。·TableModel接口1、TableModel为JTable提供·显示的数据·表格的维数·表格中每一列所包含的数据类型·应该显示的列标题·是否允许编辑指定单元格的值2、实现TableModel:TableValues类importjavax.swing.table.AbstractTableModel;
/** * 注意:一般使用AbstractTableModel创建Ta 阅读全文
《算法导论》第6章 堆排序 (3)K路归并
2012-02-15 21:58 by java线程例子, 670 阅读, 收藏,
摘要:
问题描述:问题来自习题6.5-8 给出一个时间为O(nlgk),用来将k个已排序链表合并为一个排序链表的算法。此处n为所有输入链表中元素的总数。(提示:用一个最小堆来做k路合并)。在K路归并问题中,取出最小堆的根元素(最小元素)后,如果此元素没有后继元素(next为空),则有两种方案:一、从K路中的另一个链表取出一个元素放到根位置。二、将堆底部最后一个元素挪到根位置,并将堆大小减一。此处采用方案二。堆大小每减一,说明K路中某一个链表已处理完。当堆大小为零时,处理结束。源码与注释:// 链表结点类classNode {intvalue;Nodenext;}publicclassKMerge {p 阅读全文
自制简单的Java下载器——来自《Java高级编程》的一个关于线程的例子(带上部分注释)
2012-02-14 23:54 by java线程例子, 490 阅读, 收藏,
摘要:
这俩天看《Java高级编程》,看到下面这例子,觉得挺适合新手学习Thread的,所以记录下来,供向我这样的菜鸟学习学习,大牛可以直接忽略。想法:完善并提高此程序的功能,做个专属自己的下载器。(2012/02/14 23:56 )此程序主要有3个类:Downloader、DownloadManager、DownloadFiles。1、Downloader:读取并写入数据2、DownloadManager:主要用于控制下载,有开始、暂停、恢复、停止等功能3、DownloadFiles:用于在文本框中输入URL并创建对应的DownloadManager类的实例涉及到的知识点有:线程(Thread)、 阅读全文
《Java编程思想》之I/O系统
2012-02-05 19:40 by java线程例子, 711 阅读, 收藏,
摘要:
1、Java中“流“类库让人迷惑的主要原因:创建单一的结果流,却需要创建多个对象。2、使用层叠的数个对象为单个对象动态地、透明地添加职责的方式,称作“修饰器“模式。修饰器必须与其所修饰的对象具有相同的接口,这使得修饰器的基本应用具有透明性——我们可以想修饰过或没有修饰过的对象发送相同的消息。3、为什么使用修饰器? 在直接使用扩展子类的方法时,如果导致产生了大量的、用以满足所需的各种可能的组合的子类,这是通常就会使用修饰器——处理太多的子类已经不太实际。4、修饰器的缺点:增加代码的复杂性。5、JavaI/O类库操作不便的原因在于:我们必须创建许多类——“核心”I/O类型加上所有的修饰器,才能得到 阅读全文