- 浏览: 515499 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (136)
- SOS经典收藏 (9)
- 好文收藏 (3)
- 技术杂烩 (6)
- SQL常用操作 (8)
- J2EE开发错误 (11)
- Java开发点滴_SSH (20)
- 数据库维护 (11)
- 网络相关 (1)
- WEB JS_CSS_DIV (10)
- 加密解密 (1)
- Swing (2)
- C&C++ (8)
- Linux (2)
- 软件工程 (5)
- Util (3)
- 我的实例 (3)
- Office办公常用 (3)
- JSP_Servlet (3)
- 开发手记 (4)
- Java基础 (3)
- Oracle技术 (6)
- 基础文档库 (9)
- 设计模式 (1)
- weblogic8.1启动的时候,项目报错,找不到Class (0)
- Office应用 (1)
- VM虚拟机技术 (1)
- PHP开发日记 (0)
最新评论
-
MoonLord:
其实不需要删文件,修改一个值就好了,参考:https://gi ...
Beyond Compare报应用程序发生错误 不能打开解决办法 -
别拿土豆不当马铃薯:
${pageContext.request.contextPath} JSP取得绝对路径 -
hysunny0923:
不需要DBUtilis.java啦学到很多~感谢分享~~
第一个JSP+Servlet+JavaBean+JDBC示例程序 -
zsxy168:
少了DBUtils.java文件
第一个JSP+Servlet+JavaBean+JDBC示例程序 -
little_demonye:
写得好详细,清楚了很多,太感谢啦
第一个JSP+Servlet+JavaBean+JDBC示例程序
引用
小结Java学习中的一些知识点
JAVA中&&和||的区别
&&; 表示一个一个执行下去 结合性为从左到右,即先计算左边的操作数,当左边为false时,就不关心右边的数了,直接返回False,如果为True而再计算右边的操作数,当右边的也为True时,返回True,如果为False,则返回在False,即当全部为true才打印true ,如果有一个结果是 false则停止执行 打印false. &&:即是,从左到右,先判断第一个,如果第一个为True时,再判断第二个,两个都为真(True)时,才为真.如果第一个为False,刚放弃判断第二个,返回False. || 表示一个一个执行下去 结合性为从左到右,即先计算左边的操作数,当左边为true时,就不关心右边的数了,直接返回true,如果为false而再计算右边的操作数,当右边的也为false时,返回True,如果为true,则返回true,即当全部为false才打印false 如果有一个结果是 true则停止执行 打印true 当全部为false 则打印false &&:是找错的,一旦发现一个错就返回False,所以当发现第一个是错的时,便毫不犹豫的返回False,第一个为True时才去看第二个,如果第二个还是True,那么它就满意了,过关,返回True,否则返回False。 ||:是找对的,一旦发现一个对的,就返回true,当第一个为对的时,便毫不犹豫的返回true,当第一个为False时,再看第二个,如果还为False则返回false,如果有一个TRue那么,返回true。 &&:两个当中只要有一个是错的,就算错,除非两个都是对的,才算对; ||:两个当中只要有一个是对的,就算对,除非两个都是错的,才算错;
==和Equals的区别
==指的是它们的引用相同 而equals指的是它们的内容是否相同 equals比较的是两个东西的内容,如果相同则为true。 = =比较的是两个东西的内存地址,如果不是同一个对象的引用,那么就是 false。如上图中对S1和S2的比较(粉红色底线所示),因为S1和S2是两个对象,所以不是对一个对象的引用,所以比较的结果是false。但与之相反的S1与S3的比较,因为这里不是New出来的,所以是一个对象,S1和S3指向的都是同一个对象,所以S1与S3都是同一个对象的引用,结果就是True。 所以它们两个的用法是不一样的,如果要比较内容,当然是用equals
&和&&的区别:
&是位运算符,而&&是逻辑运算符 逻辑操作& |和条件操作&&、||的区别: 条件操作只能操作布尔型,而逻辑操作不仅可以操作布尔型,还可以操作数值类型 条件操作有短路,而逻辑操作不会产生短路。
int和Integer的区别:
int 是原始类型,直接存数值,Integer是引用类型,是一个类。 当用作某个类的实例数据时引用类型所指定的缺省值是null,而原始类型实例变量的缺省值与它们的类型有关 引用类型和原始类型的行为完全不同且具有不同的特征和用法
Abstract和Interface的区别:
接口是一种特殊的抽象类,但不是类,抽象类是未实现部分方法的类。 接口能被多个不相关的类继承,一个类也可以继承多个不相关的接口。而抽象类只能继承一个类,且被一个子类继承。
静态变量与实例变量的区别:
类变量也叫静态变量,也就是在变量前加了static 的变量; 实例变量也叫对象变量,即没加static 的变量; 类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象; "实例变量,它不需用static关键字来声明;只要对象被当作引用,实例变量就将存在。实例变量有时也被用作成员变量,因为它们是类的成员
String和StringBuffer的区别:
String 是不可变的,而StringBuffer是可变的;可以用StringBuffer来动态构建字符数据。
Abstract和Interface的区别:
接口是一种特殊的抽象类,但不是类,抽象类是未实现部分方法的类。 接口能被多个不相关的类继承,一个类也可以继承多个不相关的接口。而抽象类只能继承一个类,且被一个子类继承。
final、finally、finalize有什么区别?
Final代表着不变的,固定的,Final修饰类,代表这个类是不可继承的,是项极类。修饰变量,代表这个变量只能被赋值一次,修饰方法,代表方法不能被重写。 Finally是在try Catch{}子句后,始终执行的一段程序。 Finalize是指Java的自垃圾回收器。
接口与抽象类的区别
abstract class和interface在Java语言中都是用来进行抽象类定义的; 抽象类和接口都不能被实例化; 接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,没有变量和方法的实现。接口中只能定义抽象方法, 接口只包含常量和方法的定义,没有变量和方法的实现,绝不能含有实例域,也不能在接口中实现方法。而抽象类除了抽象方法之外,抽象类还可以包含具体数据和具体方法。 abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系(因为Java不支持多继承 -- 转注)。但是,一个类却可以实现多个interface。也许,这是Java语言的设计者在考虑Java对于多重继承的支持方面的一种折中考虑吧。
Forward和SendRedirect有什么不同?
Forward将Request及Response一并传过去了,而SendRedirect只是实现了一种资源的重新定位。
指出下面程序的运行结果:
package test; class A{ static{ System.out.println("1"); } public A(){ System.out.println("2"); } } class B extends A{ static{ System.out.println("a"); } public B(){ System.out.println("b"); } } public class Static1 { public static void main(String[] args) { A a=new B(); a=new B(); a=new A(); } }
运行结果是:1a2b
说出原因:
引用
★ New 子类时执行的操作:
先定位子类构造(注意:这里是定位,并不是执行,也就是说从这里开始),先父后子,先this()后Super(),先语句块后构造。
先从父类执行,先找父类的构造,父类的构造又有构造,一直找到Object.
找到父类后,先执行静态语句块的内容,按照先父后子的顺序,再找子类中静态语句块的内容,执行,也就是先父后子,先语句块,
父类和子类的静态都执行完了以后,再来找构造方法,按照什么标准来找呢?还是先父后子,先this()后Super();即先执行父类中的构造,父类中的构造按先this(),后Super()执行,然后再执行子类中的构造,同样按先this(),后Supter()这样的顺序执行;
★在这里可以看到,实际上先父后子是一个贯穿始终的原则,我们可以这样来理解,在New+子类时,执行的操作是,先从父类找静态方法,执行完了以后再找子类的静态方法;(这里是一个先父后子)。父和子的都执行完了以后,接下来又返回,从父类中执行构造,在执行父类的构造的过程中,是按照先this()后Super();来执行的,待执行完了父类的构造后,接下来再执行子类的构造,同样,按照先this(),后super()的原则来执行。这就是整个过程。
先定位子类构造(注意:这里是定位,并不是执行,也就是说从这里开始),先父后子,先this()后Super(),先语句块后构造。
先从父类执行,先找父类的构造,父类的构造又有构造,一直找到Object.
找到父类后,先执行静态语句块的内容,按照先父后子的顺序,再找子类中静态语句块的内容,执行,也就是先父后子,先语句块,
父类和子类的静态都执行完了以后,再来找构造方法,按照什么标准来找呢?还是先父后子,先this()后Super();即先执行父类中的构造,父类中的构造按先this(),后Super()执行,然后再执行子类中的构造,同样按先this(),后Supter()这样的顺序执行;
★在这里可以看到,实际上先父后子是一个贯穿始终的原则,我们可以这样来理解,在New+子类时,执行的操作是,先从父类找静态方法,执行完了以后再找子类的静态方法;(这里是一个先父后子)。父和子的都执行完了以后,接下来又返回,从父类中执行构造,在执行父类的构造的过程中,是按照先this()后Super();来执行的,待执行完了父类的构造后,接下来再执行子类的构造,同样,按照先this(),后super()的原则来执行。这就是整个过程。
指出以下代码的运行结果,并试分析原因:
package test; public class Try { public static int testTry(int n){ int r ; try{ r=n*n; return r; }catch(Exception e){ e.printStackTrace(); }finally{ if(n= =2); } return n; } public static void main(String[] args) { int a=Try.testTry(2); System.out.println(a); } }
运行结果是:4
原因是:
引用
在Finally子句包含return语句时,将会出总想不到的结果。假设利用return语句从try语句中退出,在方法返回之前,finally语句块的内容将会被执行。如果Finally语句块中也包含一个return语句,那么这个返回的值将会掩盖原始的返回值。如下例:
如果将代码改为以下:
package test; public class Try { public static int testTry(int n){ int r ; try{ r=n*n; return r; }catch(Exception e){ e.printStackTrace(); }finally{ if(n= =2);return 0; //绿色部分为更改代码。 } // return n; //绿色部分为更改代码。 } public static void main(String[] args) { int a=Try.testTry(2); System.out.println(a); } } 如果Finally语句块中也包含一个return语句,那么这个返回的值将会掩盖原始的返回值。也就是说会返回finally中的return 中的值 即 0 。 class Trey{ public static void test(){ try{ System.out.println("run"); return; // System.exit(-1); }catch(Exception e){ System.out.println("Exception"); }finally{ System.out.println("finally"); } } } public class Test{ public static void main(String[] args) { int a=Try.testTry(2); System.out.println(a); Trey.test(); } }
输出的结果是:
run finally 如果将System.exit(1);打开,将Return注掉, 则运行结果为: Run 原因是Syste.exit(1);的意思是退出虚拟机。
待补充......
发表评论
-
获得运行jar包存放路径的方法
2011-04-18 00:03 1388获得运行jar包存放路径 ... -
java读取配置文件的方法
2011-04-17 10:59 1147大家可能经常会遇到在Java程序中存取程序配置文件的需求,比如 ... -
<logic:iterate>使用
2010-05-21 13:55 1606<logic:iterate> 是Logic ... -
Struts中的html:link标签使用
2010-05-21 13:23 1173Struts中的html:link标签是 ... -
第一个hibernate项目
2010-01-03 13:56 1658什么是POJO? POJO是最纯粹的Java对象,也 ... -
Struts标签-bean:write几个属性举例
2009-12-31 17:10 8516Struts标签-bean:write几个属性举例2009-0 ... -
属性配置文件的使用方法_灵活使用配置文件来配置类
2009-12-21 19:26 763属性配置文件的使用方法 我们常常使用配置文件来进行工程属性的配 ... -
Java调用Windows命令
2009-10-09 12:08 1626Java调用Windows命令 Java调用Windows ... -
Java操作Windows注册表实例
2009-10-09 11:54 1438Microsoft Windows 9x、Windows ... -
关于Java装载库文件
2009-09-21 01:33 1685System.load 和 System.loadLibrar ... -
jar文件的打包方法
2009-09-21 01:04 1404针对:双击jar文件,即可运行相关程序 首先列表一下环境: ... -
Java代码混淆器最佳推荐
2009-09-20 23:12 6599引用从事Java编程的人都知道,可以通过逆向工程反编译得到Ja ... -
建立规范的项目开发程序
2009-05-21 01:18 960引用规范的开发,使得项目看起来更为清晰,更为规范: 比如在开发 ... -
ApplicationResources.properties
2009-05-19 01:18 3501引用ApplicationResources.properti ... -
Properties Editor for Eclipse3[1].0-3.2安装使用
2009-05-14 00:42 9403采用Link方式安装Propertie ... -
Log4j在开发中的使用
2009-05-11 00:27 987Log4j: Log4j的使用分为 ... -
Jsp页面传值的方法
2009-04-22 11:13 11223一.通过Form表单提交传值 客户端通过Form表单提交到服 ... -
java反编译 jar jad
2009-04-21 18:11 5018引用将CLASS文件打包成JAR文件? 一:简单的打包: ... -
Eclips 使用点滴
2009-03-30 16:29 10151.)eclipse过滤jar文件 每次看到老长的竖列jar文 ...
相关推荐
Java 基础知识总结 Java 是一种广泛使用的编程语言,由 Sun 公司的 James Gosling 等人于 1991 年开始开发。Java 有三种技术架构:JavaEE、JavaSE 和 JavaME。JavaSE 是桌面应用程序的开发基础,JavaEE 是企业环境...
这篇“Java基础知识总结(经典)”涵盖了Java开发中的核心概念和重要知识点,旨在为初学者和有经验的开发者提供一个全面的回顾。以下是主要的学习点: 1. **Java环境配置**:在开始编程之前,必须安装Java ...
### Java基础知识总结 #### Java 入门概述 Java 作为一种广泛应用的编程语言,自1995年由 Sun Microsystems 发布以来,迅速成为了软件开发领域的主流技术之一。Java 的诞生不仅推动了软件行业的进步,还引领了一...
JAVA基础知识总结 JAVA基础知识总结 JAVA基础知识总结
Java 基础知识总结是 Java 程序员不可或缺的一部分,本总结将涵盖 Java 的基础知识,包括 Java 概述、Java 语法基础、变量、数据类型、运算符、控制语句、方法、数组、继承、多态、接口、异常、IO 流等。 一、Java ...
Java基础知识总结涵盖了Java程序设计语言的核心概念和常用知识点。在详细学习和总结这些知识点之前,首先需要对Java有一个整体的认识。Java是一种面向对象的编程语言,它具有跨平台的特性,即“一次编写,到处运行”...
### Java基础知识总结(绝对经典) #### 一、Java概述 - **起源与发展**:Java语言始于1991年Sun公司的James Gosling等人所开发的Oak语言,原计划用于控制嵌入式设备如有线电视交换盒和个人数字助理(PDA)。1994年...
2024版Java基础知识总结(超详细整理)2024版Java基础知识总结(超详细整理)2024版Java基础知识总结(超详细整理)2024版Java基础知识总结(超详细整理)2024版Java基础知识总结(超详细整理)2024版Java基础知识...
### Java基础知识总结 #### 一、Java概述 Java是由Sun Microsystems公司(现已被Oracle收购)在1991年由James Gosling领导的团队所开发的一种面向对象的编程语言。最初被命名为Oak,目的是为了控制嵌入式设备和...
自己在网上找的相对好一点的java复习资料,留个纪念 。详细讲述了Java课程的知识点
### Java基础知识总结 #### 一、Java概述 Java是一种广泛使用的高级编程语言,它由Sun Microsystems公司的James Gosling等人在1991年开始开发,并最初命名为Oak。Oak旨在用于控制嵌入式设备如有线电视交换盒和个人...
Java是一种广泛使用的面向对象的编程语言,其基础知识涵盖了多个方面,包括语法、面向对象特性、异常处理、多线程...以上只是Java基础知识的一个概述,每个话题都值得深入探讨和实践,不断学习和总结是提升技能的关键。