1、Java小结201504031、程序:程序可以看作对一系列动作的执行过程的描述。2、什么是ssh?答:集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的 分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access
2、 Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最 后由Spring做管理,管理struts和hibernate。3、JDK是什么?JAVA开发工具包4、JDK和Jre JDK包含JRE,JRE里包含JVM,JRE是运行JAVA,JDK是开发JAVA5、一个workspace里做好只放一个项目和一个tomcat6、一个文件里可以写多个类(class),类里面也可以写类,类中类可以是匿名的,调用类中类只需要最外面的类点上类中类7、XXjava1.5到1.7的新特性答:一、jdk1.5新特性1.泛型2.
3、foreach3.自动拆箱装箱4.枚举5.静态导入(Staticimport)6.元数据(Metadata)7.线程池8.JavaGenerics二、jdk1.6新特性1.Desktop类和SystemTray类2.使用JAXB2来实现对象与XML之间的映射3.StAX4.使用CompilerAPI5.轻量级HttpServerAPI6.插入式注解处理API(PluggableAnnotationProcessingAPI)7.用Console开发控制台程序8.对脚本语言的支持9.CommonAnnotations三、jdk1.7新特性1对集合类的语言支持;2自动资源管理;3改进的通用实例创建
4、类型推断;4数字字面量下划线支持;5switch中使用string;6二进制字面量;7简化可变参数方法调用。8、怎么配置环境变量9,final和finally?fianl修饰变量,方法和类,被final修饰的变量叫常量,被final修饰的类没有子类,被final修饰的方法不能被重写。10、静态的只能访问静态的11、变量的作用域 成员变量和局部变量 成员变量有初始值 局部变量方法有效 被static修饰的变量可以全局访问,static不可以访问非static,非static可以访问static全局变量可以被修饰符修饰 局部变量除了可被final修饰外不可以再被其他任何修饰符修饰 被final修饰
5、的量必须初始化;12、怎么不用第三方变量交换方法一 a= a + b; b = a - b; a = a - b;方法二:a = a * b;b = a / b;a = a / b;方法三:a = a b;b = a b;a = a b; 13、48个关键字?“=”和equal的区别?“!=”能够判断字符串么?答:48个关键字+访问控制private 私有, protected 保护, public 共享.+类、方法和变量修饰符abstract 摘要, class 类, extends 扩允,final 结局, implements 工具, interface 接口,native 本地, ne
6、w 新, static 静态,strictfp, synchronized 同步,transient 短暂,volatile 易失.+程序控制语句break, continue, return, do, while, if, else,for, instanceof, switch, case,default,+错误处理catch 捕获, finally 最后, throw 投试,throws 投试, try 尝试+包相关import 输入, package 包.+基本类型boolean 布尔型, byte 字节型, char 字符型, double 双精度,float 浮点, int 整型,
7、 long 长整型, short 短整型+变量引用super 特殊, this 这个, void 无值除了这48个关键字以外,还有3个语法保留字:null 空, true 真, false 假.java中equals方法和“=”的区别:equals 方法是 java.lang.Object 类的方法。有两种用法说明:(1)对于字符串变量来说,使用“=”和“equals()”方法比较字符串时,其比较方法不同。“=”比较两个变量本身的值,即两个对象在内存中的首地址。“equals()”比较字符串中所包含的内容是否相同。比如:String s1,s2,s3 = abc, s4 =abc ;s1 =
8、new String(abc);s2 = new String(abc);那么:s1=s2 是 false /两个变量的内存地址不一样,也就是说它们指向的对象不 一样,故不相等。s1.equals(s2) 是 true /两个变量的所包含的内容是abc,故相等。注意(1):如果: StringBuffer s1 = new StringBuffer(a);StringBuffer s2 = new StringBuffer(a);结果: s1.equals(s2) /是false解释:StringBuffer类中没有重新定义equals这个方法,因此这个方法就来自Object类,而Object
9、类中的equals方法是用来比较“地址”的,所以等于false.注意(2):对于s3和s4来说,有一点不一样要引起注意,由于s3和s4是两个字符串常量所生成的变量,其中所存放的内存地址是相等的,所以s3=s4是true(即使没有s3=s4这样一个赋值语句)(2)对于非字符串变量来说,=和equals方法的作用是相同的都是用来比较其对象在堆内存的首地址,即用来比较两个引用变量是否指向同一个对象。比如:class AA obj1 = new A();A obj2 = new A();那么:obj1=obj2是falseobj1.equals(obj2)是false但是如加上这样一句:obj1=ob
10、j2;那么 obj1=obj2 是trueobj1.equals(obj2) 是true总之:equals方法对于字符串来说是比较内容的,而对于非字符串来说是比较其指向的对象是否相同的。= 比较符也是比较指向的对象是否相同的也就是对象在对内存中的的首地址。String类中重新定义了equals这个方法,而且比较的是值,而不是地址。所以是true。关于equals与=的区别从以下几个方面来说:(1)如果是基本类型比较,那么只能用=来比较,不能用equals比如:public class TestEquals public static void main(String args)int a =
11、3;int b = 4;int c = 3;System.out.println(a = b);/结果是falseSystem.out.println(a = c);/结果是trueSystem.out.println(a.equals(c);/错误,编译不能通过,equals方法/不能运用与基本类型的比较(2)对于基本类型的包装类型,比如Boolean、Character、Byte、Shot、Integer、Long、Float、Double等的引用变量,=是比较地址的,而equals是比较内容的。比如:public class TestEquals public static void m
12、ain(String args) Integer n1 = new Integer(30);Integer n2 = new Integer(30);Integer n3 = new Integer(31);System.out.println(n1 = n2);/结果是false 两个不同的Integer对象,故其地址不同,System.out.println(n1 = n3);/那么不管是new Integer(30)还是new Integer(31) 结果都显示falseSystem.out.println(n1.equals(n2);/结果是true 根据jdk文档中的说明,n1与n2
13、指向的对象中的内容是相等的,都是30,故equals比较后结果是trueSystem.out.println(n1.equals(n3);/结果是false 因对象内容不一样,一个是30一个是31这是Integer的实例,如果是其他的比如Double、Character、Float等也一样。(3)注意:对于String(字符串)、StringBuffer(线程安全的可变字符序列)、StringBuilder(可变字符序列)这三个类作进一步的说明。(a)首先,介绍String的用法,请看下面的实例:public class TestEquals public static void main(S
14、tring args) String s1 = 123;String s2 = 123;String s3 = abc;String s4 = new String(123);String s5 = new String(123);String s6 = new String(abc);System.out.println(s1 = s2);/(1)trueSystem.out.println(s1.equals(s2);/(2)trueSystem.out.println(s1 = s3);/(3)flaseSystem.out.println(s1.equals(s3);/(4)flase
15、System.out.println(s4 = s5);/(5)flaseSystem.out.println(s4.equals(s5);/(6)trueSystem.out.println(s4 = s6);/(7)flaseSystem.out.println(s4.equals(s6);/(8)flaseSystem.out.println(s1 = s4);/(9)falseSystem.out.println(s1.equals(s4);/(10)true答案解释:s1与s2分别指向由字符串常量”123” 创建的对象,在常量池中,只有一个对象,内容为123,有两个引用s1和s2指向
16、这个对象,故这两个引用变量所指向的地址是相同的,因而(1)处的运行结果为true,又因为s1.equals(s2)是比较s1和s2所指向的对象的内容是否相等,而我们知道这两个对象的内容都是字符串常量”123”,故标记(2)处的运行结果是true。用同样的方法分析,s1和s3所指向的对象不一样,内容也不一样,故标记(3)和(4)处运行结果是false。再看看s4和s5,这两个引用变量所指向的对象的内容都是一样的(内容都是123),但是这两个对象是用new操作符创建处类的,是在内存中分配两块空间给这两个对象的,因而这两个对象的内存地址不一样,故事两个不同的对象,标记(5)处的s4 = s5 运行结
17、果为false,但是内容一样,故标记(6)处的s4.equals(s5)运行结果为true。同理,s4和s6所指向的对象地址不同,内容也不相同。故标记(7)(8)处运行结果为false。s1和s4分别指向两个不同的对象(之所以这样称呼,是因为这两个对象在内存中的地址不相同,故而对象不相同),故标记为(9)处的s1 = s4运行结果为false,而标记为(10)处的s1.equals(s4)运行结果疑问:乍一看结果,有点惊讶,为什么不是true呢,不是说 equals方法是比较内容的吗?解释:不错,如果在新类中被覆盖了equals方法,就可以用来比较内容的。但是在上面的例子中类Value并没有覆
18、盖Object中的equals方法,而是继承了该方法,因此它就是被用来比较地址的,又v1和v2的所指向的对象不相同,故标记(1)处的v1.equals(v2)运行结果为false,标记为(2)处的v1 = v2运行结果也为false。14、JAVA常用的5个包?(XX)201504081、三种结构:顺序结构,选择结构,循环结构2、第一:项目名称首字母大写(Ban27) 第二:建包 包名一般采用域名倒置 com.baidu.模块名 第三:建类 首字母大写 Object类时所有类的父类,也就是说,所有类直接或间接继承Object类3、所有类型和String类型相加,结果为String型4、if后面
19、没有大括号,只作用后面的第一句。如果此时的if有else,那么if后面只能有一条语句。5、在同一个作用域里,变量名不可以相同6、switch结构在1.6版本之前,只支持byte short int char 和枚举类型但是1.7版本之后支持字符串String7、break跳出循环体,执行循环体外面的代码 continue跳出本次循环,执行下一次循环8、用for和while组合打印99乘法表9、定义一个数组int类型,求出数组中的最大值和最小值10、1、J2SE是所有基于Java语言开发的基础,该版本主要用于开发桌面应用程序。2、J2EE作为一个企业版本,主要是给出一个开发企业级应用架构的解决方案,同时给出了在这个架构中相关组件以供开发人员使用,例如我们连接数据库所用的JDBC。3、J2ME则是针对移动设备,嵌入式系统的开发。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1