首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | HR | 镜像
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>编程开发>java>Java基础>正文

关于Java基础知识部分总结

http://www.oklinux.cn  2008-02-28  赛迪网 loveofgod  会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

本文就java基础部分容易混淆的一些知识点进行了一下总结。因为Java本身知识点非常多,不可能在很短的篇幅就能叙述完,而且就某一个点来讲,如欲仔细去探究,也能阐述的非常多。这里不做全面仔细的论述,仅做为一个引子,抛砖引玉。具体个例,还需各位看官自己验证一下,以增进理解和记忆。

欢迎就这一部分各位朋友与我进行探讨,共同进步。
1、虽然有很多朋友可能进行了多年的java开发老手,但可能仍旧对某些点缺乏仔细探究。
2、去一些公司求职面试或笔试时的技术题目中,也往往会涉及到这里的一些内容。
所以,希望下边的这些总结能够对一些学习java或求职的朋友有些许帮助。


 
  1、 关于java类中的缺省的构造器
如果一个java类没有显式定义没有参数的构造器,将有一个默认缺省的构造器。如果定义了一个有参数的构造器,那么原来的缺省的构造器将不在有效。
public class A{
}
此时如果用 new A(); java编译器将使用缺省的构造器。
public class A{
public A(int i){
}
}
如果此时用 new A(); 将产生一个编译错误,因为此时显式定义了,一个有参数的构造器。


2、Java中的类名与文件名
1、在一个java文件中可以有多于一个类定义(更常见于某些组件的监听器类),但只能有一个public class定义,且与文件同名。
2、如果一个java源文件中没有public类,那么每个类的名字没特殊规则,即不必与文件同名。
3、在编译后产生的class文件中,仍旧是多个单独分开的class文件。


3、import关键字
1、import语句必须定义在所有的class定义之前。
2、import语句只是为编译器指明了一个路径,并不像C或C 中的#include,所以用import .*并不影响性能


4、Java中的几个特殊关键字
Java中的关键字许多大家都比较熟悉,而有几个就不是很常用,如:
1、goto和const是保留关键字,在java中没使用
2、strictfp和volatile不常用; sizeof、zhen不是关键字。
3、true,false,null不是严格意义上的关键字,而是literals。


5、java方法中的传递值参
在Java方法中传递参数,对于基本类型来讲传递的是值参数,相当于建立的一个参数的拷贝,不影响原来变量的值。
在引用方法中可以改变传递对象的内容,但对象引用(像A@5d87b2)从来不会改变。

public class tt{
public static void main (String args[]){
A aa = new A();
aa.num =5;
tt t = new tt();
System.out.println("11 aa=" aa "num=" aa.num);
t.test(aa);
System.out.println("22 aa=" aa "num=" aa.num);
}
void test(A a){
A ab = new A();
a = ab;
System.out.println("33 ab=" ab "num=" ab.num);
}
}
class A{
int num;
}

6、变量初始化
java中的变量在使用之前必须被初始化,当创建一个对象的时候一些类的变量会自动初始化并赋予缺省值。
数字类赋值0;char类型赋值'\u0000'; boolean类型赋值false;引用对象赋值null;
注意的是在方法之外的类变量的值是自动赋初始值,而方法内的局部变量必须手工初始化。

class AA{
int num;
void test(){
int j;
j =5;//没有这一行则编译不会通过。
j = j num;
}
}

7、switch语句
这个点经常在求职笔试题目中出现。default放在最上边编译没问题;碰到符合分支的,如果没有break会一直向下运行。

public class tt{
public static void main (String args[]){
tt t = new tt();
t.test(2);//可改变成3运行一下看一下结果
}
void test(int i){
switch (i){
default:
System.out.println("default");
case 1:
System.out.println("111");
break;
case 2:
System.out.println("222");
break;
}
}
}

8、关于java中的label使用
? break [label]
? continue[lbele]
? lable: statement; //这里的statement必须是一个loop循环
public class tt{
public static void main (String args[]){
tt t = new tt();
t.test();
}
void test(){
System.out.println("0000");
lb1:for (int i=0;i<10;i ){
lb2:for (int j=0; j<2; j ){
if (i==2) continue lb1;
System.out.println("i=" i " j=" j);
}
}
System.out.println("111111");
}
}

9、类型转换校正
class Employee
|
class Manager
向上校正,总是允许的,Manager直接使用父类Employee的方法。
向下校正,必须用instanceof检验,才能将一个Employee转换为Manager对象。

public void test(Employee e){
if (e instanceof Manager){
Manager m = (Mnager)e;
...
}
}

10、方法重载(overloading)、方法覆盖(overriding)

方法重载(overloading)一定要求名字相同,参数不同,返回类型可以相同也可以不同

class A{
void test(int i){
}
}
class AA extends A{
int test(int i, int j){
return 5;
}
}
注:方法覆盖(overriding)要求名字,参数,返回类型全部必须相同,访问控制符可以不同,但必须大过父类的。因为如果名字和参数都已经相同了则一定要求返回类型相同,否则认为这是一个新的方法了,名字就必须不同了。

class A{
void test(int i){
}
}
class AA extends A{
public void test(int i){//若是换成private则编译不通过。
}
}

注:关于覆盖方法抛出异常的问题。如A是父类,B是继承A的子类。B中的方法meth()去覆盖父类A的此方法时,B中不能throws出新的异常,只能是父类抛出的异常或其子集。更甚至可以不抛出异常。


11、关于类的构造器重载问题

class A{
public A(int i){
}
}
class AA extends A{
public AA(){
int i = 5; // 这里出错,没有父构造器
}
}

共3页: 上一页 1 [2] [3] 下一页

上一篇:把Ubuntu黄主题的换成蓝色主题(图)   下一篇:随便说说JAVA字符集和编码

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·随便说说JAVA字符集和编码
·Java语言中四种XML解析技术之不完全测试
·JSP/Servlet:Servlet/JSP会话跟踪机制
·Java GUI:在SWING中设计windowclosing()
·Java GUI--在Java中监控文本框的变化
·进阶-使用浮点数和小数中的技巧和陷阱
·JAVA语言操作数据库方式与设计模式应用
·JAVA基础:Java/JSP中文乱码问题解决心得
·String中三种加法的区别
·关于int 和 String 互相转换的多种方法
·Java语言深入:C#与Java相似之处的对比
·Java语言深入--抽象类和接口的区别
·Java语言深入:浅析Java语言中的内部类
·高级:lucene全文检索应用示例及代码简析
·高手对 CLASSPATH 的详解
·基础:Java初学者都必须理解的六大问题
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·Java开发下的设计模式简单说明
·JAVA语言关于字符串替换的思考
·编写高级JavaScript应用代码
·常用的JDBC连接数据库方法大全
·解决JSP开发中Web程序中文显示三种方法
·对于Spring初学者的学习建议
·Java开发编程规范大分享
·站在巨人肩膀上学好J2EE全攻略
·Java网络编程基础(四) ServerSocket类
·Java网络编程基础(三) Datagram类使用
·Java学习过程中应该深入理解的一些重点
·Java网络编程基础(二) Socket类的使用
  阅读排行
·Java语言深入--java调用C/C 的过程
·一个非常有趣的使用spring框架AOP例子
·初学者Structs中基本配置入门
·使用AJAX技术实现网页无闪自动局部刷新
·关于java中相对路径,绝对路径问题总结
·JAVA基础:一个struts hibernate入门实
·高级:lucene全文检索应用示例及代码简
·一个基于Java Socket实现文件传输示例
·Hibernate配置文件中的映射元素详解
·关于角色访问控制(RBAC)
·快速教您Apache Tomcat SSL的配置
·使用WEBWORK实现文件上传方法实例详解
·JSP/Servlet:< jsp-config>标签使用详
·在struts里实现dtree通用树型结构讲解
·JSP JavaBean Servlet工作原理实例讲解
网摘收藏: