Java相关知识点杂记
2011-08-03 09:42
253 查看
环境变量(Windows)
JAVA_HOME=C:\jdk1.6
CLASSPATH=.;%JAVA_HOME%\lib\*.jar;
PATH=.;%JAVA_HOME%\bin;%PATH%
Linux JDK中文字体设置
我们经常会发现在Linux下,java应用程序的中文会变成一个一个的“口”字,这样会给我们的使用带来很多的困扰。怎么来解决这个问题呢?
其实,要解决这个问题也挺简单。首先来说说产生这个问题的原因。java程序启动的时候会在$JAVA_HOME/jre/lib/fonts目录下寻找相应的字体来显示。由于JDK默认没有中文字体,所以我们需要手工的来设置一下,让java应用程序能够找到相应的中文字体。这样就能够解决问题了。
基本步骤如下:
1)cd $JAVA_HOME/jre/lib/fonts
2)mkdir fallback
3)cp xxx.ttf fallback #xxx.ttf代表你想要的中文字体文件
4)cd fallback
5)mkfontscale
6)mkfontdir
其实,可以一条命令解决这个问题。将Linux系统的字体目录作为JDK下面的一个字体目录连接。
ln -s $FONTS_PATH/FONT_DIR $JAVA_HOME/jre/lib/fonts/fallback
你再打开你的java应用程序就会看到久违的中文了。
在Ubuntu环境下实测发现做到前三步即可;可以直接将Windows系统下的中文字体拷贝到Ubuntu。
日期格式化
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dateStr = sdf.format(new Date());
日期计算
// 5天后的12点整
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) + 5);
calendar.set(Calendar.HOUR, 12);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
字符串格式化String.format
示例——对整数进行格式化,将1显示为001
int num = 1;
String str = String.format("%03d", num);
获取指定集合中指定对象出现的次数
可使用java.util.Collections类中的frequency()方法:
public static int frequency(Collection<?> c, Object o);
Java中getResourceAsStream的用法
(1) Class.getResourceAsStream(String path) :
path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取
(2) Class.getClassLoader.getResourceAsStream(String path) :
默认则是从ClassPath根下获取,path不能以’/'开头
(3) ServletContext. getResourceAsStream(String path):
默认从WebAPP根目录下取,Tomcat下path是否以’/'开头无所谓,当然这和具体的容器实现有关。
Java反射机制概述(包:java.lang.reflect)
(1) 通过反射API可以获取程序在运行时刻的内部结构(只要有了java.lang.Class类的对象,就可以通过其中的方法来获取到该类中的构造方法、域和方法。对应的方法分别是getConstructor、getField和getMethod。)
(2) 在运行时刻对一个Java对象进行操作(包括动态创建一个Java类的对象,获取某个域的值以及调用某个方法)
(3) 反射API中提供的动态代理也是非常强大的功能,可以原生实现AOP中的方法拦截功能。
优点:运行期类型的判断,动态类加载,动态代理使用反射。
缺点:性能是一个问题,反射相当于一系列解释操作,通知jvm要做的事情,性能比直接的java代码要慢很多。
Java开发中常用的Web Service框架
Web Servcie最主要的优点是: 即跨语言,跨平台的不同系统之间的通信。Web Servcie是RPC远程过程调用的一种。
目前Web Servcie开发主要有以下两种开发模式:一是传统基于SOAP模式的Web Servcie开发;二是基于REST(Representational State Transfer)模式的Web Servcie开发。
JAX-WS(Java6引进)是SOAP协议的一个Java的实现规范,这个新规范是为了简化基于SOAP的Java开发。JAX-WS同时支持基于SOAP的Web服务和REST风格的Web服务。
Apache Axis2和Apache CXF均是是JAX-WS规范的一个开源实现框架。并且这两个框架同时也支持JAX-RS规范。
1、如果应用程序需要多语言的支持,Axis2 应当是首选
2、如果应用程序是遵循Spring哲学路线的话,Apache CXF是一种更好的选择,特别对嵌入式的Web Services来说
Java开发中的23种设计模式详解
Java开发中的23种设计模式详解
J2EE规范
J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对J2EE中的13种技术规范进行简单的描述(限于篇幅,这里只能进行简单的描述):
1 JDBC(Java Database Connectivity)
JDBC API为访问不同数据库提供了统一的路径,像ODBC一样,JDBC开发者屏蔽了一些细节问题,另外,JDBC对数据库的访问也具有平台无关性.
2 JNDI(Java Name and Directory Interface)
JNDI API 被用于执行名字和目录服务.它提供了一致的模型来存取和操作企业级的资源DNS和LDAP,本地文件系统,或应用服务器中的对象.
3 EJB(Enterprise JavaBean)
J2EE技术之所以赢得广泛重视的原因之一就是EJB.它提供了一个框架来开发和实施分布式商务逻辑,由此很显著的简化了具有可伸缩性和高度复杂的企业级应用程序的开发.EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用.容器负责提供公用的服务,例如目录服务,事务管理,安全性,资源缓冲池以及容错性.但这里值得注意的是,EJB并不是实现J2EE的唯一路径.正是由于J2EE的开放性,使得所有的厂商能够以一种和EJB平行的方式来达到同样的目地.
4 RMI(Remote Method Invoke)
远程方法请求,RMI协议调用远程对象上的方法.它使用了序列化的方式在客户端和服务器之间传递数据.RMI是一种被EJB使用的更底层的协议.
5 Java IDL/CORBA(通用对象请求代理架构是软件构建的一个标准 )
在Java IDL的支持下,开发人员可以将Java和CORBA集成在一起.他们可以创建Java对象并使之可在CORBA ORB中展开,或者他们还可以创建Java类并和其它ORB一起展开的CORBA对象客户.后一种方法提供了另外一种途径,通过它Java可以被用于将你的新的应用程序和旧的系统集合在一起.
6 JSP
JSP页面由HTML(标准通用标记语言下的一个应用)代码和嵌入其中的Java代码组成.服务器在
页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端浏览器.
7 Java Servlet
Servlet 是一种小型的Java程序,它扩展了web服务器的功能.作为一种服务器的应用,当被请求时开始执行,这和CGI Perl脚本很相似.Servlet提供的功能大多和JSP类似,不过实现的方式不同.JSP通常是大多数的HTML代码中嵌入少量的Java代码,而servlet全部由java写成并且生成HTML.
8 XML
XML(标准通用标记语言的子集)是一种可以用来定其它标记语言的语言.它被用来在不同的商务过程中共享数据.XML的发展和java是相互独立的,但是,它和java具有的相同目标是平台独立性.
9 JMS
MS是用于和面向对象消息的中间件相互通信的应用程序接口.它既支持点对点的域,有支持发布/订阅类型的域,并且提供了下列类型的支持:消息传递,事务型消息的传递,一致性消息和具有持久性的订阅者支持.JMS还提供了另一种方式来对新系统和旧后台系统相互集成.
10 JTA
JTA定义了一种标准API,应用程序由此可以访问各种事务监控.
11 JTS
JTS是CORBA OTS事务监控的基本实现.JTS规定了事务管理的实现方法.该事务管理器是在高层支持java Transaction API规范,并且在较低层次实现OMG OTS specification 和Java印象.JTS事务管理器为应用程序服务器,资源管理器,独立的应用以及同学资源管理器提供了事务服务.
12 JavaMail
JavaMail是用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类.不仅支持SMTP服务器,也支持IMAP服务器。
13 JAF(JavaBeans Activation Framework)
JavaMail利用JAF来处理MIME编码的邮件附件.MIME的字节流可以被转换成java对象,大多数应用都可以不需要直接使用JAF。
安卓开发
Android开发中,安卓客户端一般使用SQLite数据库
客户端与服务器端的交互方式:Servlet、Web Service
客户端与服务器端的数据交换格式:XML、JSON
Eclipse快捷键
Alt+/ 提示
CTRL+SHIFT+R 打开文件
CTRL+O 查看类中的所有方法及属性
Ctrl+T 查看类/方法的继承关系树
Ctrl+L 转至行
Shift+Enter 当前光标下一行插入空白行
Ctrl+Alt+ 向上箭头/向下箭头 复制
Eclipse
如何把tab替换成空格
JAVA_HOME=C:\jdk1.6
CLASSPATH=.;%JAVA_HOME%\lib\*.jar;
PATH=.;%JAVA_HOME%\bin;%PATH%
Linux JDK中文字体设置
我们经常会发现在Linux下,java应用程序的中文会变成一个一个的“口”字,这样会给我们的使用带来很多的困扰。怎么来解决这个问题呢?
其实,要解决这个问题也挺简单。首先来说说产生这个问题的原因。java程序启动的时候会在$JAVA_HOME/jre/lib/fonts目录下寻找相应的字体来显示。由于JDK默认没有中文字体,所以我们需要手工的来设置一下,让java应用程序能够找到相应的中文字体。这样就能够解决问题了。
基本步骤如下:
1)cd $JAVA_HOME/jre/lib/fonts
2)mkdir fallback
3)cp xxx.ttf fallback #xxx.ttf代表你想要的中文字体文件
4)cd fallback
5)mkfontscale
6)mkfontdir
其实,可以一条命令解决这个问题。将Linux系统的字体目录作为JDK下面的一个字体目录连接。
ln -s $FONTS_PATH/FONT_DIR $JAVA_HOME/jre/lib/fonts/fallback
你再打开你的java应用程序就会看到久违的中文了。
在Ubuntu环境下实测发现做到前三步即可;可以直接将Windows系统下的中文字体拷贝到Ubuntu。
日期格式化
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dateStr = sdf.format(new Date());
日期计算
// 5天后的12点整
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) + 5);
calendar.set(Calendar.HOUR, 12);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
字符串格式化String.format
示例——对整数进行格式化,将1显示为001
int num = 1;
String str = String.format("%03d", num);
获取指定集合中指定对象出现的次数
可使用java.util.Collections类中的frequency()方法:
public static int frequency(Collection<?> c, Object o);
Java中getResourceAsStream的用法
(1) Class.getResourceAsStream(String path) :
path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取
(2) Class.getClassLoader.getResourceAsStream(String path) :
默认则是从ClassPath根下获取,path不能以’/'开头
(3) ServletContext. getResourceAsStream(String path):
默认从WebAPP根目录下取,Tomcat下path是否以’/'开头无所谓,当然这和具体的容器实现有关。
Java反射机制概述(包:java.lang.reflect)
(1) 通过反射API可以获取程序在运行时刻的内部结构(只要有了java.lang.Class类的对象,就可以通过其中的方法来获取到该类中的构造方法、域和方法。对应的方法分别是getConstructor、getField和getMethod。)
(2) 在运行时刻对一个Java对象进行操作(包括动态创建一个Java类的对象,获取某个域的值以及调用某个方法)
(3) 反射API中提供的动态代理也是非常强大的功能,可以原生实现AOP中的方法拦截功能。
优点:运行期类型的判断,动态类加载,动态代理使用反射。
缺点:性能是一个问题,反射相当于一系列解释操作,通知jvm要做的事情,性能比直接的java代码要慢很多。
Java开发中常用的Web Service框架
Web Servcie最主要的优点是: 即跨语言,跨平台的不同系统之间的通信。Web Servcie是RPC远程过程调用的一种。
目前Web Servcie开发主要有以下两种开发模式:一是传统基于SOAP模式的Web Servcie开发;二是基于REST(Representational State Transfer)模式的Web Servcie开发。
JAX-WS(Java6引进)是SOAP协议的一个Java的实现规范,这个新规范是为了简化基于SOAP的Java开发。JAX-WS同时支持基于SOAP的Web服务和REST风格的Web服务。
Apache Axis2和Apache CXF均是是JAX-WS规范的一个开源实现框架。并且这两个框架同时也支持JAX-RS规范。
1、如果应用程序需要多语言的支持,Axis2 应当是首选
2、如果应用程序是遵循Spring哲学路线的话,Apache CXF是一种更好的选择,特别对嵌入式的Web Services来说
Java开发中的23种设计模式详解
Java开发中的23种设计模式详解
J2EE规范
J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对J2EE中的13种技术规范进行简单的描述(限于篇幅,这里只能进行简单的描述):
1 JDBC(Java Database Connectivity)
JDBC API为访问不同数据库提供了统一的路径,像ODBC一样,JDBC开发者屏蔽了一些细节问题,另外,JDBC对数据库的访问也具有平台无关性.
2 JNDI(Java Name and Directory Interface)
JNDI API 被用于执行名字和目录服务.它提供了一致的模型来存取和操作企业级的资源DNS和LDAP,本地文件系统,或应用服务器中的对象.
3 EJB(Enterprise JavaBean)
J2EE技术之所以赢得广泛重视的原因之一就是EJB.它提供了一个框架来开发和实施分布式商务逻辑,由此很显著的简化了具有可伸缩性和高度复杂的企业级应用程序的开发.EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用.容器负责提供公用的服务,例如目录服务,事务管理,安全性,资源缓冲池以及容错性.但这里值得注意的是,EJB并不是实现J2EE的唯一路径.正是由于J2EE的开放性,使得所有的厂商能够以一种和EJB平行的方式来达到同样的目地.
4 RMI(Remote Method Invoke)
远程方法请求,RMI协议调用远程对象上的方法.它使用了序列化的方式在客户端和服务器之间传递数据.RMI是一种被EJB使用的更底层的协议.
5 Java IDL/CORBA(通用对象请求代理架构是软件构建的一个标准 )
在Java IDL的支持下,开发人员可以将Java和CORBA集成在一起.他们可以创建Java对象并使之可在CORBA ORB中展开,或者他们还可以创建Java类并和其它ORB一起展开的CORBA对象客户.后一种方法提供了另外一种途径,通过它Java可以被用于将你的新的应用程序和旧的系统集合在一起.
6 JSP
JSP页面由HTML(标准通用标记语言下的一个应用)代码和嵌入其中的Java代码组成.服务器在
页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端浏览器.
7 Java Servlet
Servlet 是一种小型的Java程序,它扩展了web服务器的功能.作为一种服务器的应用,当被请求时开始执行,这和CGI Perl脚本很相似.Servlet提供的功能大多和JSP类似,不过实现的方式不同.JSP通常是大多数的HTML代码中嵌入少量的Java代码,而servlet全部由java写成并且生成HTML.
8 XML
XML(标准通用标记语言的子集)是一种可以用来定其它标记语言的语言.它被用来在不同的商务过程中共享数据.XML的发展和java是相互独立的,但是,它和java具有的相同目标是平台独立性.
9 JMS
MS是用于和面向对象消息的中间件相互通信的应用程序接口.它既支持点对点的域,有支持发布/订阅类型的域,并且提供了下列类型的支持:消息传递,事务型消息的传递,一致性消息和具有持久性的订阅者支持.JMS还提供了另一种方式来对新系统和旧后台系统相互集成.
10 JTA
JTA定义了一种标准API,应用程序由此可以访问各种事务监控.
11 JTS
JTS是CORBA OTS事务监控的基本实现.JTS规定了事务管理的实现方法.该事务管理器是在高层支持java Transaction API规范,并且在较低层次实现OMG OTS specification 和Java印象.JTS事务管理器为应用程序服务器,资源管理器,独立的应用以及同学资源管理器提供了事务服务.
12 JavaMail
JavaMail是用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类.不仅支持SMTP服务器,也支持IMAP服务器。
13 JAF(JavaBeans Activation Framework)
JavaMail利用JAF来处理MIME编码的邮件附件.MIME的字节流可以被转换成java对象,大多数应用都可以不需要直接使用JAF。
安卓开发
Android开发中,安卓客户端一般使用SQLite数据库
客户端与服务器端的交互方式:Servlet、Web Service
客户端与服务器端的数据交换格式:XML、JSON
Eclipse快捷键
Alt+/ 提示
CTRL+SHIFT+R 打开文件
CTRL+O 查看类中的所有方法及属性
Ctrl+T 查看类/方法的继承关系树
Ctrl+L 转至行
Shift+Enter 当前光标下一行插入空白行
Ctrl+Alt+ 向上箭头/向下箭头 复制
Eclipse
如何把tab替换成空格
相关文章推荐
- Java软件开发基础知识梳理之(6)------事务相关知识点
- java--类加载相关知识点
- java相关的知识点总结
- Java中线程的相关知识点汇总
- Java同步、异步相关知识点
- Java 相关知识点
- java基础74 XML解析中的SAX解析相关知识点(网页知识)
- 关于java的一些相关知识点
- Java相关知识点总结
- java 图形用户界面 之 在界面中添加滑动块 示例代码 及 相关知识点
- 浅析Java IO相关知识点
- Java相关知识点汇总
- Java IO 相关的知识点小结
- java研发工程师被提问的相关知识点—SSH框架
- Java同步、异步相关知识点
- Java同步、异步相关知识点
- Java知识点梳理:第四章:对象的相关知识
- java学习笔记 反射reflection相关知识点小结
- java知识点杂记
- java中string的相关知识点