摘要:一 中英文对齐输出问题 问题,要求控制台输出如下: abcefg def 森林 阿狗 其实就是要求对齐输出,各种查找java的格式化输出,然后发现只要一个简单的“\t”就可以实现。 代码如下: System.out.printf("abcefg\t");System.out.printf("def\t");System.out.println();System.out.printf("森林之王\t");System.out.printf("阿狗\t");二 几个关于java格式化输出的知识点汇总 2.1 类c的pr
        
阅读全文
 
        
            
            
摘要:父类引用指向子类对象指的是:例如父类Animal,子类Cat,Dog。其中Animal可以是类也可以是接口,Cat和Dog是继承或实现Animal的子类。Animal animal = new Cat();即声明的是父类,实际指向的是子类的一个对象。那这么使用的优点是什么,为什么要这么用?可以用这几个关键词来概括:多态、动态链接,向上转型也有人说这是面向接口编程,可以降低程序的耦合性,即调用者不必关心调用的是哪个对象,只需要针对接口编程就可以了,被调用者对于调用者是完全透明的。让你更关注父类能做什么,而不去关心子类是具体怎么做的,你可以随时替换一个子类,也就是随时替换一个具体实现,而不用修改其
        
阅读全文
 
        
            
            
摘要:转载自http://developer.51cto.com/art/201106/266454.htm。感觉总结的不错,自己收藏一下。 string是java中的字符串。String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。下面介绍java中的String与常量池。1. 首先String不属于8种基本数据类型,String是一个对象。因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。2. new String()和new String(“”)都是申明一个新的空字符串,是空串不是null;...
        
阅读全文
 
        
            
            
摘要:ApacheCommons是一个非常有用的工具包,解决各种实际的通用问题,下面是一个简述表,详细信息访问http://jakarta.apache.org/commons/index.htmlBeanUtilsCommons-BeanUtils提供对Java反射和自省API的包装BetwixtBetwixt提供将JavaBean映射至XML文档,以及相反映射的服务.ChainChain提供实现组织复杂的处理流程的“责任链模式”.CLICLI提供针对命令行参数,选项,选项组,强制选项等的简单API.CodecCodec包含一些通用的编码解码算法。包括一些语音编码器,Hex,Base64,以及UR
        
阅读全文
 
        
            
            
摘要:Apache commons 一系列的开源工具室非常值得学习的实现。 一 JavaBean定义JavaBean是一种可重复使用、且跨平台的软件组件。JavaBean可分为两种:一种是有用户界面(UI,User Interface)的 JavaBean;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。JSP通常访问的是后一种JavaBean。...
        
阅读全文
 
        
            
            
摘要:下面1-4的内容是网上收集的相关知识,总结来说,就是如下几个知识点:最常用读取properties文件的方法InputStream in = getClass().getResourceAsStream("资源Name");这种方式要求properties文件和当前类在同一文件夹下面。如果在不同的包中,必须使用:InputStream ins = this.getClass().getResourceAsStream("/cn/zhao/properties/testPropertiesPath2.properties");Java中获取路径方法获取路径
        
阅读全文
 
        
            
            
摘要:一 在eclipse中使用JUnit4首先在工程上右键,选择属性,找到Java Builder Path,添加JUnit4的lib,如下图: 在要测试的类上右键新建 Junit test case,选择想要测试的方法,然后做一些修改,再去运行。不过建议所有的测试都放入到另外的源文件夹中,但是包名等保持相同。例如: 把所有的测试类放入到test文件夹中去。这样比较清晰专业些。简单在在新...
        
阅读全文
 
        
            
            
摘要:回调函数,第一次见是在Java编程思想中,以及后来的观察者模式也应用了回调函数的思想。但是一直都没有重视,终于在一次面试的时候吃亏了,越来越理解为什么很多人说Java编程思想这本书要一遍遍的看,吃透! 首先在网络上搜索很多文章介绍什么是回调函数,看的云里雾里的。后来自己一步步分解终于理解了,记录如下。 从维基百科上面摘抄定义:(看完本篇文章再来理解这个定义) 在计算机程序设计中,回调函数,或简称回调,是指通过函数参数传递到其它代码的,某一块可执行代码的引用。这一设计允许了底层代码调用在高层定义的子程序。 在Java里面,我们使用接口来实现回调。 这篇文章中的解说定义非常好:http://bl.
        
阅读全文
 
        
            
            
摘要:一般来说这是面向对象的五大设计原则,但是,我觉得这些原则可适用于所有的软件开发。Single Responsibility Principle (SRP)– 职责单一原则关于单一职责原则,其核心的思想是:一个类,只做一件事,并把这件事做好,其只有一个引起它变化的原因。单一职责原则可以看作是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。职责过多,可能引起它变化的原因就越多,这将导致职责依赖,相互之间就产生影响,从而极大的损伤其内聚性和耦合度。单一职责,通常意味着单一的功能,因此不要为一个模块实现过多的功能点,以保证实体只有一个引起它变化的原因
        
阅读全文
 
        
            
            
摘要:一个简单的jsch链接linux并执行命令的utils。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import com.jcraft.jsch.Channel;import com.jcraft.jsch.ChannelExec;import com.jcraft.jsch.JSch;import com.jcraft.jsch.JSchException;import com.jcraft.jsch..
        
阅读全文
 
        
            
            
摘要:创建二叉树2011年6月11日21:28有以下4点1:树本身有一个根节点root2:静态内部类Node,其中有左子节点,右子节点,以及构造方法。3:还有insert方法,将节点插入到数的root下4:最后是一个构建树的方法5:再往下就可以是对节点的操作方法了。public class BinaryTree {private Node root; /*定义一个静态内部类,Node节点*/public static class Node {Node left;Node right;int data; Node(int newData) {left = null;right = null;data 
        
阅读全文
 
        
            
            
摘要:public static void change (int x, int y){//要求://不借助第三方变量,将x,y两个变量的值互换。}正解:public static void change (int x, int y){ x = x + y; y = x - y; x = x - y;}还可以用亦或操作。
        
阅读全文
 
        
            
            
摘要:今天去Intel面试,是由同学内推的。面试的职位是做Openstack方面的python开发。问了以下的问题,感觉收获比较大的,是:要从高层次上面掌握知识!!!1:exception方面的知识,异常分为几种,分别是怎么处理,每一种都有哪些,IOException是那种?还有几种级别的异常 ----Runtime还有非Runtime的。2:String为什么是final类型的-----为了线程安全3:final的类还有方法,不可变类。HashTable是不可变类。4:关于Policy5:openstack的imaging6: hashcode方法和equals方法,为什么要重写hashcode.
        
阅读全文
 
        
            
            
摘要:1:split方法,里面split(“\s”);这样子会出现编译错误,而不是抛出异常。2:has-a和is-a的关系3:序列化相关知识4:StringBuffer的delete和insert和substring方法 StringBuffer中方法只有subString方法返回string类型,其它的方法都可以在本身操作,返回的是StringBuffer类型。5:并发环境下事务的处理,J2EE的标准JTA6:System.out.println(1 + 2 + "2" + new Integer(3) + new Long(4));这个的返回值是3234,在字符串后面的才都当
        
阅读全文
 
        
            
            
摘要:面向对象的三大特征:封装、继承、多态。1、封装封装是面向对象的特征之一,是对象和类概念的主要特性。封装就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。2、继承继承是面向对象编程(OOP)语言的一个主要功能。继承是指一种能力:它可以使现有类的所有功能,子类可以来直接继承使用,并在无需重新编写原来类的情况下对这些功能进行扩展 。3、多态多态性是允许你将父对象设置成为一个或多个子对象相等的技术,父对象通过赋值不同子对象类型指针的运作方式,来实现不同的运作方式。面向对象可以使你的程序更加可维护、可复用、可扩展及更具灵活性。面向对象的好处使用面
        
阅读全文
 
        
            
            
摘要:题目如下:String str = " i am a programmer";其中空格个数分别是1,2,3个要求按照单词反转,也就是最后输出“programmer a am i"; 空格数分别为3,2,1。1:用split函数方式:[java]view plaincopyprint?publicstaticvoidreverse(){Strings="iamaprogrammer";//几个空格的数量分别为1,2,3String[]eg=s.split("",-1);Stringresult="";for
        
阅读全文
 
        
            
            
摘要:这是从控制台读入,典型的装饰者模式: String in =(new BufferedReader(new InputStreamReader(System.in))).readLine();
        
阅读全文
 
        
            
            
摘要:标准示例importjava.sql.*; publicclass TestMySQLConn { /** * @param args */publicstatic void main(String[] args) {Connectionconn = null;Statementstmt = null;ResultSetrs = null; try{Class.forName("com.mysql.jdbc.Driver");conn= DriverManager.getConnection("jdbc:mysql://localhost/mydata?"
        
阅读全文
 
        
            
            
摘要:开始读《Effective Java》第二版,对于第一小节,上网找了两篇比较好的说明静态工厂方法的文章,初步理解:所谓的静态工厂方法,就是一个静态方法,可以返回类的实例,可以避免每次都new一个对象。java静态工厂方法 创建类的实例最常见的是new 除此外还可以使用静态工厂方法,来封装实例的细节,并且能控制实例的数量,减轻jvm的堆栈中的压力。静态工厂方法与用new语句调用的构造方法相比,有以下区别:1:构造方法的名字必须与类名相同。这一特性的优点是符合Java语言的规范,缺点是类的所有重载的构造方法的名字都相同,不能从名字上区分每个 重载方法,容易引起混淆。静态工厂方法的方法名可以是任意的
        
阅读全文
 
        
            
            
摘要:如果想要产生位于0和某个上界之间的随机整数,用next()方法的话,代码如下:[java] view plaincopyprint?Randomr=newRandom();publicintrandom(intn){returnMath.abs(r.nextInt())%n}因为,对于nextInt()方法来说,产生的数是随机的,但是有如下三个缺点:a:如果n是一个比较小的 n的乘方,比较短的周期后,它产生的随机书序列将会重复。b:如果n不是2的平方,平均起来,它产生的数字并不是均匀分布的,有的数字出现的频率比较高。c:第三个缺点是,这个程序有时候可能会产生灾难性后果。如下面的程序:[java
        
阅读全文