⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1_java学习笔记.txt

📁 偶去年8月份到11月份
💻 TXT
📖 第 1 页 / 共 4 页
字号:
2004-8-12    星期四    阴有暴雨

1.  如何设置Java开发环境(Win2000)
答:Start-Control panel-System-Advance-Environment Variables 
    设置环境变量:
    PATH = %PATH%;c:\j2sdk1.4.2_05\bin;
    CLASSPATH = .;

    注:javac编辑器总是在当前查找文件,而java解释器只有在类路径中包含“.” 目录的情况下才会查找当前目录。如果类路径没有设置,并不会产生什么问题--黙认类路径中包含“.”目录。但,如果设置了类路径,却没有包含“.”话,就会产生问题--程序编译时不会出错,但却无法运行。

2.  什么是Java?
答:1) 编程语言(先编译再解释);
    2) 开发环境;
    3) 运行环境;
    4) 部署环境;

3.  Java的特点
答:1) 简单(Java语法是C++语法的一个“纯净”版本);
    2) 可移植性
    3) 面向对象
    4) 分布式(Java把打开套接字连接等繁琐的网络任务变得非常容易)
    5) 健壮性(Java编译器会检查出很多其他语言在运行时刻才显示出来的错误;Java采用的指针模型可以消除重写内存和数据崩溃的可能)
    7) 多线程(多线程编程的简单性是Java成为流行的服务器端开发语言的主要原因之一)
    8) 安全(用Java可以构建防病毒和防篡改的系统)
    9) 动态(Java可随意增加新的方法以及实例变量,而客户端却不需做任何的更改)
    10)体系结构中立(字节码与计算机体系结构无关,只要存在运行时系统,可在多种处理器上执行)

4. Java中基本概念
答:1) 源文件
       在最顶层只包括一个public类型的类/接口,文件名与类/接口名同并以.java作为文件后缀。
    2) 包(package ,在源文件中this idertify只能放在第一行,且最多只能是一行)
       一个将类和接口组织在一块的实体,在文件系统中以目录/文件夹型式呈现。

事实上今天所学知识远比上面列出的要多,更多的知识点通过练习提前和我们见面了,像如何自行创建类、创建类的属性和方法、控制打印输出的格式(通过消息对话框输出结果)、以及局部变量、实例变量、全局变量(类变量、静态变量)间的区别。以上知识点在以后的学习中会逐渐接触到,是故不详细介绍。另外,今天的学习内容是自己以前花了几倍的时间才摸索清楚的。有人手把手引着,真好!

教Java的老师有二位,一位传授知识、一位辅导练习。授课的薛老师讲课不温不火、胸有成竹。看到他,仿佛看到Java的高度。辅导的薛老师有问必答、拉近了我们与Java的距离。

2004-8-13    星期五   阴

1. 注释的三种形式
答: //  单行注释
     /*  一或多行注释 */
     /** 文档注释     */

2. Java代码中的“;”、“{}”、“ ”
答:Java语句以分号分隔;
    Java代码块包含在大括号内;
    忽略空格。

3. 标识符
答:1) 用以命名类、方法和变量、以及包;
    2) 以字符、“_”或“$”开头;
    3) 无长度限制。

4. 数据类型
答:1) 整型
       byte       8位       -128到127
       short      16位      -2^15到2^15-1
       int        32位      -2^31到2^31-1
       long       64位      -2^63到2^63-1
    2) 浮点类型
       float      32位      
       double     64位
    3) 字符类型
       char       16位
    4) 布尔型
       boolean    false/true

    注:1) char是无符号的16位整数,字面值必须用单引号括起来;
        2) String 是类,非原始数据类型;
        3) 长整型数字有一个后缀为“L”或“l”,八进制前缀为“0”,十六进制前缀为“0x”;
        4) 黙认浮点类型为double;
        5) float数据类型有一个后缀为“f”或“F”,Double数据类型后可跟后缀“D”或“d”;

5. identifiers Naming Rules
答:1) 类/接口名首字母大写;
    2) 方法、变量名第一个字母小写,其余首字母大写;
    3) 常量名称全部大写;
    4) 包名全部小写。

6. 理解对象
答:在OOP中,程序由对象组成,这些对象具有某种属性以及对象可执行的某些操作(方法)。OOP高效的关键在于它让每个对象负责执行一组相关的任务。


2004-8-16    星期一   阴

表达式和控制流程

1. 变量和作用域

答:1) 局部变量
       定义在方法内部,其作用域为该方法,也称为临时变量、栈变量。
    2) 实例变量
       定义在类内部,其作用域为整个类。如未定义初值,系统会自动为其赋黙认值。

       类型                     黙认值
       byte                     0
       short                    0
       int                      0
       long                     0L
       float                    0.0f
       double                   0.0d
       char                     '\u0000'
       boolean                  false
       All reference types      null
 
2. 操作符
答:1) >>   前面是零补零,前面是一补一;
    2) >>>  无符号右移;
    3) &&   短路与,前面为假,表达式为假,后面不须计算;
    4) ||   短路或,前面为真,表达式为真,后面不计算;

3. 数字类型之间的转换
答:1) byte ——→ short ——→ int ——→ long
    2) char ——→ int - - - → float
    3) float ——→ double
    4) long - - - → float+++++++++++++++
    5) long - - - → double
    6) int ——→ double

    注:1)实箭头表示无信息损失的转换,虚箭头表示转换可能引起损失;
        2)int和float同为32位,但float要有几位表示幂的位数,在精度位数上要比int要小,所以有可能会有损失。long转为double同理;
        3)char和short同为16位,但char属无符号数,其范围为0~2^16, short的范围为-2^15~2^15-1 , 所以char和short不能相互转换;
        4)byte、short、char属child型,在计算时会自动转为int型,然后转为更大范围类型(long、short、double)。

4. 强制类型转换
答:1) 语法:圆括号中给出要转换的目标类型,随后是待转换的变量名。例:doublc x=9.997;int nx = (int)x;
    2) 如果试图强制转换的类型超出了目标类型的范围,结果是一个被截取的不同的数值;
    3) 不能在布尔值和任何数字类型间强制类型转换,如确要转换,可使用条件表达式,例:b?1:0。

5. 自动转换的三种类型
答:1) 赋值         double d=1.23f;
    2) 方法调用     Math.sqrt(2);
    3) 数值计算转换 -9.232e20+1;


6. 强制转换(cast)的二种类型
答:1) 赋值
    2) 方法调用

7. switch与case
答:1) switch变量可以是byte、short、char、int;
    2) default值可以位于switch代码顶部、中部或底部;
    3) break不是必须的。例如:case 1:case 2:case 3:



2004-8-17    星期二       阴

数组

1. 声明数组
答:1) 一组相同类型(可以是类)数据的集合;
    2) 一个数组是一个对象;
    3) 声明一个数组没有创建一个对象;
    4) 数组能以下列形式声明:
       int[] i 或 int i[]
       Car[] c 或 Car c[]

2. 创建数组
答:1) 创建原始数组    int[] i = new int[2];
    2) 创建类类型数组  Car[] c = new Car[100];
    3) 数组创建后有初始值。

3. 初始化数组
答:1) 初始化、创建、和声明分开
       int[] i; 
       i = new int[2]; 
       i[0] = 0;
       i[1] = 1;
    2) 初始化、创建、和声明在同一时间
       int[] i = {0,1};
       Car[] c = {new Car(),new Car()};

4. 多维数组
答:1) 有效
       int[][] i1 = new int[2][3];
       int[][] i2 = new int[2][];
       i2[0] = new int[2],i2[1] = new int[3];
    2) 无效
       int[][] i1 = new int[][3];
    3) 数组长度
       int[] i = new int[5];
       int len = i.length;//len = 5;
       Student[][] st = new Student[4][6];
       len = st.length;//len = 4;
       len = st[0].length;//len = 6;


请问以下哪段代码哪个可正确执行?(a,c)
1. a  char[] i = {'a','b'}; i = new char[]{'b','c'};
   b  char[] i = {'a','b'}; i = {'b','c'};
   c  char[] i = new char[2]; i = new char[]{'b','c'};
   d  char[] i = new char[2]; i = {'b','c'};

2004-8-18    星期三       晴

今天讲完数组,类的概念开了一个头。封装、继承、多态,由这三个概念展开、举例、举猫、狗、哺乳动特的例子。举给猫、狗增加一只眼睛只要改变一下父类例子。三只眼睛的狗?我们哈哈大笑,只是,今天的日记怎么写?都是一些概念性的东西。

接口(interface)是为了解决多重继承,继承产生多态(类、方法)。封装可以最大限度地代码重用。类是一种抽象、包含有属性以及改变属性的方法。对象是类的实例,除了这些还有什么?数组是对象吗?

不能确定,那查API、问同学、请教老师。还不行?那老师给你开小灶吧!教室后头架着DV,用影像真实地记录着我们的学习生活,谁也不许掉队。

大多数知识在课堂上解决了,晚上的时间,看书、预习,能看多远看多远。自已看,雾里看花;而老师教,一片瞪明。一路通透下去,只是依然担心:十八天能否将Core Java讲完。

2004-8-19    星期四       晴

对象和类(上)

1. 封装、多态、和继承
答:1) 封装
       a. 把数据和行为结合在一个包中,并对对象的使用者隐藏数据的实现过程。对象中的数据称为对象的实例字段(instance field), 操作数据的函数和过程称为对象的方法(method)。一个特定对象就是类在实例字段上有着特定值的某个实例。
       b. 实现封装的关键在于绝不让方法直接访问其他类的实例字段。

    2) 继承
       a. 在现有类的基础上构建新的类。当继承一个现有类时,就重用(继承)了那个类的方法和字段,同时,还可以向新类中增添新的方法和字段。
       b. 在通过扩展超类来定义子类时,只需要说明子类和超类的区别就行。所以在设计类时,把最通用的方法放在超类中,把更专门的方法放在子类中。

    3) 多态(polymorphism)
       一个对象变量可以指向多种实际类型的现象。

2. 类和对象
答:1) 类:数据类型/元数据的抽象;
    2) 对象:类的实例(instance of)。

3. 方法定义
答:1) 格式 <modifiers><return_type><name>([argument_list>])[throws <exception>]{<block>}
            例如:public String getName(){ return name; }
    2) 当没有返回值时,返回类型必须被定义为void;
    3) 构造方法没有返回类型。

4. 参数传递
答:Java语言总是使用传值调用。这意味着方法得到的只是所有参数值的拷贝。因此,方法不能修改传递给它的任何参数变量的内容。

5. this
答:1) this是个隐式参数,代表被构造的对象;
    2) 如果构造器的第一个语句具有形式this(...),那么这个构造器将调用同一类中的其他构造器。

6. 封装的特点
答:1) 使具体实现不可视;
    2) 对所有的用户统一接口;
    3) 增强可维护性。

7. 方法重载 
答:1) 方法名相同;
    2) 参数必须不同;
    3) 返回类型可以不同;

2004-8-20    星期五       晴

对象和类(下)

8. 创建和初始化对象
答:1) 为一个对象分配内存空间,并初始化这个对象的值为:0/null/false。
    2) 调用构造方法。

9. 构造器
答:1) 构造器和类具有相同的名字;
    2) 一个类可以有多个构造器;
    3) 构造器可以有0个、1个或者多个参数;
    4) 构造器没有返回值;
    5) 构造器只能和new运算符一起被调用。 

10. 构造器重载
答:1) 黙认构造器指没有参数构造器,它把所有实例字段设为默认值;
    2) 如果编写的类没有构造器,系统会自动提供黙认构造器,那么构造没有构造参数的对象是非法的。

11. 子类
答:1) 是一种关系(现有类称为超类(super class)、基类(base class)、或是父类(parent class); 而新类称为子类(subclass child class)或者是派生类(derived class));
    2) 一种声明类型,public class Student extends Person{...};
    3) 单继承。

12. 继承
答:1) 构造器不能被初始化;
    2) 方法和字段可以被初始化;
    3) 子类构造器自动调用父类的黙认构造器;
    4) 当父类黙认构造器不存在时,子类构造器要显式调用超类的其它构造器。

13. Super
答:1) 调用超类方法;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -