搜档网
当前位置:搜档网 › java中常用类基础入门

java中常用类基础入门

java中常用类基础入门
java中常用类基础入门

1 API的概述

(1)应用程序编程接口。

(2)就是JDK提供给我们的一些提高编程效率的java类。

2 Object类

(1)Object是类层次结构的根类,所有的类都直接或者间接的继承自Object类。

(2)Object类的构造方法有一个,并且是无参构造

这其实就是理解当时我们说过,子类构造方法默认访问父类的构造是无参构造

(3)要掌握的方法:

A:toString()

返回对象的字符串表示,默认是由类的全路径+'@'+哈希值的十六进制表示。

这个表示其实是没有意义的,一般子类都会重写该方法。

如何重写呢?过程我也讲解过了,基本上就是要求信息简单明了。

但是最终还是自动生成。

B:equals()

比较两个对象是否相同。默认情况下,比较的是地址值是否相同。

而比较地址值是没有意义的,所以,一般子类也会重写该方法。

重写过程,我也详细的讲解和分析了。

但是最终还是自动生成。

(4)要了解的方法:

A:hashCode() 返回对象的哈希值。不是实际地址值,可以理解为地址值。

B:getClass() 返回对象的字节码文件对象,反射中我们会详细讲解

C:finalize() 用于垃圾回收,在不确定的时间

D:clone() 可以实现对象的克隆,包括成员变量的数据复制,但是它和两个引用指向同一个对象是有区别的。

(5)两个注意问题;

A:直接输出一个对象名称,其实默认调用了该对象的toString()方法。

B:面试题

==和equals()的区别?

A:==

基本类型:比较的是值是否相同

引用类型:比较的是地址值是否相同

B:equals()

只能比较引用类型。默认情况下,比较的是地址值是否相同。

但是,我们可以根据自己的需要重写该方法。

3 API概述

常用类

?Object类/Scanner类

?String类/StringBuffer类/StringBuilder类

?数组高级和Arrays类

?基本类型包装类(Integer,Character)

?正则表达式(Pattern,Matcher)

?Math类/Random类/System类

?BigInteger类/BigDecimal类

Date类/DateFormat类/Calendar类

●API(Application Programming Interface)

?应用程序编程接口

?编写一个机器人程序去控制机器人踢足球,程序就需要向机器人发出向前跑、向后跑、射门、抢球等各种命令,没有编过程序的人很难想象这

样的程序如何编写。但是对于有经验的开发人员来说,知道机器人厂商

一定会提供一些用于控制机器人的Java类,这些类中定义好了操作机

器人各种动作的方法。其实,这些Java类就是机器人厂商提供给应用

程序编程的接口,大家把这些类称为Xxx Robot API。本章涉及的Java

API指的就是JDK中提供的各种功能的Java类。

●Java API就是Java提供给我们使用的类,这些类将底层的实现封装了起来,我

们不需要关心这些类是如何实现的,只需要学习这些类如何使用。

●我们可以通过查帮助文档来了解Java提供的API如何使用

4 学习汉语和学习编程的异同点

●相同点

?基本语法

?大量成语

?写文章的手法和技巧

●不同点

?学习汉语必须先学后用

?学习编程可以现用现学

●学习编程和学习汉语的异同点:

●A:学好汉语,首先必须掌握汉语的语法,学好编程,也必须先学习编程语言的

基本语法,我们前面讲解的就可以认为的Java的编程语法。

●B:学好汉语,还要掌握大量的成语,虽然不是要把所有的成语都掌握,但至少

掌握的越过,描述事物时用词就会越恰当,越准确,越快捷,

●文章也会写的越流畅。同理,学习编程语言掌握了大量的API,就像掌握的了

大量的成语一样,可以让我们在处理某些问题时会轻而易举,

●同时,我们还能够从这些API中学到大师们组织Java类的方法,划分类的技巧。

●C:学好汉语,除了要掌握语法和成语外,还应该学会写文章的技巧和手法,比

如说议论文该怎么写(风头论点明确,猪肚论据充分,豹尾论尾有力),才能写

出好的文章。同理,学习编程,也需要掌握分析和解决问题的手法,养成良好

的编程风格和习惯,体会出编程的感觉。学习汉语,我们可以从大量的唐诗宋

词和现代散文中去体会写文章的技巧,同时听取老师的讲解和分析。同样,学

习编程,也要听取有经验的程序的分析和讲解,并从别人的优秀的程序中去找

感觉和经验。

●当然了,他们还是有一些区别的。

●最大的区别及时,学习汉语是,好多东西必须先记住了,用的时候,才能有。

有句成员不是说:书到用时方恨少吗。

●但是,学习编程了,就不用这样了,可以用的时候,临时获取,现学现用,当

然这是指我们有了一定的编程感觉和经验后了。

●如何算学会呢?

●很多人都认为我把老师的代码多敲几遍就算学会了,我就应该会做很多的东西

了,但是,事实是什么呢,是我们老师讲解能听懂,

●也能看懂很多代码,就是不会写,这是正常的现象,因为我们的内功还不够,

还得继续修炼。

●我们学习汉语,能看懂一般的文章,能写篇小文章,就算学会了,同理,学习

编程也是这样的,能看懂老师,在会写老师写过的代码了,

●然后多思考,多总结,随着时间的积累,才能真正的走向高手的水平。到那个

时刻估计就是:只要给我API,你要做什么,我就能做什么。

●以前是学好数理化,走遍天下都不怕,现在是掌握API,编程世界我不怕。

5 Object类概述及其构造方法

●Object类概述

?类层次结构的根类

?所有类都直接或者间接的继承自该类

●构造方法

?public Object()

?回想面向对象中为什么说:

?子类的构造方法默认访问的是父类的无参构造方法

6 Object类的成员方法

●public int hashCode()

●public final Class getClass()

●public String toString()

●public boolean equals(Object obj)

●protected void finalize()

protected Object clone()

讲解每个方法的时候,查看源码。

public int hashCode()

A:返回该对象的哈希码值。默认情况下,该方法会根据对象的地址来计算。

B:不同对象的,hashCode()一般来说不会相同。

但是,同一个对象的hashCode()值肯定相同。

C:不是对象的实际地址值,可以理解为逻辑地址值。

举例:物体和编号。

public final Class getClass()

A:返回此 Object 的运行时类。

B:可以通过Class类中的一个方法,获取对象的真实类的全名称。

public String getName()

public String toString()

A:返回该对象的字符串表示。

底层源码。

public static String valueOf(Object obj) {

return (obj == null) ? "null" : obj.toString();

}

B:它的值等于:

getClass().getName() + '@' + Integer.toHexString(hashCode()) C:由于默认情况下的数据对我们来说没有意义,一般建议重写该方法。

a:手动重写

b:自动生成

public boolean equals(Object obj)

A:指示其他某个对象是否与此对象“相等”。

B:默认情况下比较的是对象的引用是否相同。

C:由于比较对象的引用没有意义,一般建议重写该方法。

a:手动重写

b:自动生成

D:==和equals()的区别。(面试题)

protected void finalize()

A:当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。

B:垃圾回收器不会马上回收垃圾,但是我们可以建议它尽快回收垃圾。(System.gc()方法)

C:主要针对堆内存。

protected Object clone()

创建并返回此对象的一个副本,这种克隆机制十分高效,而且二者之间完全隔离。

自定义类实现克隆步骤:

A:自定义类实现Cloneable接口,这是一个标记性接口,实现这个接口的类的对象可以实现自我克隆。

B:自定义类中重写Object类的clone()方法。

C:重写clone()方法时通过super.clone()调用Object类的clone()方法来得到该对象的副本,并返回该副本。

注意:

A:克隆和两个引用指向同一个对象的区别?

B:Object类clone()方法虽然简单,易用,但仅仅是一种”浅克隆”,它只克隆该对象所有的Field值,不会

对引用类型的Field所引用的对象进行克隆。开发中,我们也可以实现对象的”深度克隆”。

7 Scanner类概述及其构造方法

●Scanner类概述

?JDK5以后用于获取用户的键盘输入

●构造方法

?public Scanner(InputStream source)

●如果一个程序总是按照既定的流程运行,无需处理用户动作,这个程序总是比

较简单的。

●实际上,绝大部分程序都需要处理用户动作,包括接收用户的键盘录入,鼠标

动作等。

●后面GUI部分会讲解这些知识。今天我们先重点讲解如何接收键盘录入数据。

●顺便讲解一下,JDK5以前是如何接收键盘录入数据的。

●如果数据间有空格,就应该把数据用””括起来。

8 Scanner类的成员方法

●基本格式

?hasNextXxx() 判断是否还有下一个输入项,其中Xxx可以是Int,Double 等。如果需要判断是否包含下一个字符串,则可以省略Xxx

?nextXxx() 获取下一个输入项。Xxx的含义和上个方法中的Xxx相同

?默认情况下,Scanner使用空格,回车等作为分隔符

●常用方法

?public int nextInt()

public String nextLine()

注意事项:

先nextInt()然后nextLine()的问题。

原因:

解决方案:

A:重新创建对象。

B:都以字符串形式接收,然后把字符串转成int类型。

9 String类概述及其构造方法

●String类概述

?字符串是由多个字符组成的一串数据(字符序列)

?字符串可以看成是字符数组

●构造方法

?public String()

?public String(byte[] bytes)

?public String(byte[] bytes,int offset,int length)

?public String(char[] value)

?public String(char[] value,int offset,int count)

?public String(String original)

●在实际开发中,字符串的操作是最常见的操作,没有之一。

●而Java没有内置的字符串类型,所以,就在Java类库中提供了一个类String

供我们来使用。

●String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此

类的实例实现。

●注意:

●String s = “helloworld”;

●s也是一个对象。

10 String类的特点及面试题

●字符串是常量,它的值在创建之后不能更改

?String s = “hello”; s += “world”; 问s的结果是多少?

●面试题

?String s = new String(“hello”)和String s = “hello”;的区别?

?字符串比较之看程序写结果

?字符串拼接之看程序写结果

●A:针对字符串的特点,必须画内存图讲解。

●B:new字符串和直接复制的区别也要画内存图讲解。

●前者创建2个对象,后者创建1个对象。

●测试:

●测试之前:说一下字符串中的equals()方法重写了Object()的方

法,比较的是内容。

●内容相同,引用不同。

●C:

●String s1 = new String("hello");

●String s2 = new String("hello");

●System.out.println(s1==s2);

●System.out.println(s1.equals(s2));

●String s3 = new String("hello");

●String s4 = "hello";

●System.out.println(s3==s4);

●System.out.println(s3.equals(s4));

●String s5 = "hello";

●String s6 = "hello";

●System.out.println(s5==s6);

●System.out.println(s5.equals(s6));

●D:

●String s1 = "hello";

●String s2 = "world";

●String s3 = "helloworld";

●System.out.println(s3==s1+s2);

●System.out.println(s3.equals(s1+s2));

●还可以通过Xjad查看class文件。

11 String类的判断功能

●boolean equals(Object obj)

●boolean equalsIgnoreCase(String str)

●boolean contains(String str)

●boolean startsWith(String str)

●boolean endsWith(String str)

●boolean isEmpty()

12 String类的获取功能

●int length()

●char charAt(int index)

●int indexOf(int ch)

●int indexOf(String str)

●int indexOf(int ch,int fromIndex)

●int indexOf(String str,int fromIndex)

●String substring(int start)

●String substring(int start,int end)

lastIndexOf()方法

13 String类的转换功能

●byte[] getBytes()

●char[] toCharArray()

●static String valueOf(char[] chs)

●static String valueOf(int i)

●String toLowerCase()

●String toUpperCase()

●String concat(String str)

14 String类的其他功能

●替换功能

?String replace(char old,char new)

?String replace(String old,String new)

●去除字符串两空格

?String trim()

●按字典顺序比较两个字符串

?int compareTo(String str)

?int compareToIgnoreCase(String str)

15 StringBuffer类概述及其构造方法

●StringBuffer类概述

?我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String 对象,既耗时,又浪费空间。而StringBuffer就可以解决这个问题

?线程安全的可变字符序列

●StringBuffer和String的区别?

●构造方法

?public StringBuffer()

?public StringBuffer(int capacity)

?public StringBuffer(String str)

●讲解构造方法的区别的时候,可以把长度功能和容量功能先解释一下。

●长度:实际值

●容量:理论值

16 StringBuffer类的成员方法

●添加功能

?public StringBuffer append(String str)

?public StringBuffer insert(int offset,String str)

●删除功能

?public StringBuffer deleteCharAt(int index)

?public StringBuffer delete(int start,int end)

●替换功能

?public StringBuffer replace(int start,int end,String str)

●反转功能 public StringBuffer reverse()

●截取功能

?public String substring(int start)

?public String substring(int start,int end)

●截取功能和前面几个功能的不同

?返回值类型是String类型,本身没有发生改变

17 学生类

Student.java

package cn.itcast_01;

public class Student extends Object {

}

StudentTest.java

package cn.itcast_01;

/*

* Object:类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。

* 每个类都直接或者间接的继承自Object类。

*

* Object类的方法:

* public int hashCode():返回该对象的哈希码值。

* 注意:哈希值是根据哈希算法计算出来的一个值,这个值和地址值有关,但是不是实际地址值。

* 你可以理解为地址值。

*

* public final Class getClass():返回此 Object 的运行时类

* Class类的方法:

* public String getName():以 String 的形式返回此 Class 对象所表示的实体

*/

public class StudentTest {

public static void main(String[] args) {

Student s1 = new Student();

System.out.println(s1.hashCode()); // 11299397

Student s2 = new Student();

System.out.println(s2.hashCode());// 24446859

Student s3 = s1;

System.out.println(s3.hashCode()); // 11299397

System.out.println("-----------");

Student s = new Student();

Class c = s.getClass();

String str = c.getName();

System.out.println(str); // cn.itcast_01.Student

//链式编程

String str2 = s.getClass().getName();

System.out.println(str2);

}

}

18 学生类静态方法

Student.java

package cn.itcast_02;

public class Student {

private String name;

private int age;

public Student() {

super();

}

public Student(String name, int age) {

super();

https://www.sodocs.net/doc/7a1333515.html, = name;

this.age = age;

}

public String getName() {

return name;

}

public void setName(String name) {

https://www.sodocs.net/doc/7a1333515.html, = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

@Override

public String toString() {

return"Student [name=" + name + ", age=" + age + "]";

}

// @Override

// public String toString() {

// // return super.toString();

// // return "hello";

// return "姓名:" + name + ",年龄:" + age;

// }

}

StudentDemo.java

package cn.itcast_02;

/*

* public String toString():返回该对象的字符串表示。

*

* Integer类下的一个静态方法:

* public static String toHexString(int i):把一个整数转成一个十六进制表示的字符串

*

* 这个信息的组成我们讲解完毕了,但是这个信息是没有任何意义的。所以,建议所有子类都重写该方法。

* 怎么重写呢?

* 把该类的所有成员变量值组成返回即可。

* 重写的最终版方案就是自动生成toString()方法。

*

* 注意:

* 直接输出一个对象的名称,其实就是调用该对象的toString()方法。

*/

public class StudentDemo {

public static void main(String[] args) {

Student s = new Student();

System.out.println(s.hashCode());

System.out.println(s.getClass().getName());

System.out.println("--------------------");

System.out.println(s.toString());//

cn.itcast_02.Student@42552c

System.out.println("--------------------");

// toString()方法的值等价于它

// getClass().getName() + '@' +

Integer.toHexString(hashCode())

//

this.getClass().getName()+'@'+Integer.toHexString(this.hashCod

e())

// cn.itcast_02.Student@42552c

// cn.itcast_02.Student@42552c

System.out.println(s.getClass().getName() + '@'

+ Integer.toHexString(s.hashCode()));

System.out.println(s.toString());

// 直接输出对象的名称

System.out.println(s);

}

}

19 学生类方法重写

Student.java

package cn.itcast_03;

public class Student {

private String name;

private int age;

public Student() {

super();

}

public Student(String name, int age) {

super();

https://www.sodocs.net/doc/7a1333515.html, = name;

this.age = age;

}

public String getName() {

return name;

}

public void setName(String name) {

https://www.sodocs.net/doc/7a1333515.html, = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

@Override

public boolean equals(Object obj) {

if (this == obj)

return true;

if (obj == null)

return false;

if (getClass() != obj.getClass())

return false;

Student other = (Student) obj;

if (age != other.age)

return false;

if (name == null) {

if (https://www.sodocs.net/doc/7a1333515.html, != null)

return false;

} else if (!name.equals(https://www.sodocs.net/doc/7a1333515.html,))

return false;

return true;

}

// @Override

// public boolean equals(Object obj) {

// // return true;

// //这里要改进,根据这里比较的成员变量来决定返回true还是false

// //这里其实要比价的就是name和age

// //但是,name是String类型的,而String是引用类型的,所以,在这里不能直接用==比较,应该用equals()比较

// //String的equals()方法是重写自Object类的,比较的是字符串的内容是否相同

// //this -- s1

// //obj -- s2

// //我们要使用的是学生类的特有成员变量,所以要向下转型

// Student s = (Student)obj; //s -- obj -- s2;

// if(https://www.sodocs.net/doc/7a1333515.html,.equals(https://www.sodocs.net/doc/7a1333515.html,) && this.age == s.age) { // return true;

// }else {

// return false;

// }

// }

// @Override

// public boolean equals(Object obj) {

// //为了提高效率

// if(this == obj){

// return true;

// }

//

// //为了提供程序的健壮性

// //我先判断一下,obj是不是学生的一个对象,如果是,再做向下转型,如果不是,直接返回false。

// //这个时候,我们要判断的是对象是否是某个类的对象?

// //记住一个格式:对象名 instanceof 类名

// //表示:判断该对象名是否是该类名一个对象

// if(!(obj instanceof Student)){

// return false;

// }

// //如果是就继续

//

// Student s = (Student)obj;

// //System.out.println("同一个对象,还需要向下转型并比较吗?");

// return https://www.sodocs.net/doc/7a1333515.html,.equals(https://www.sodocs.net/doc/7a1333515.html,) && this.age == s.age; // }

}

StudentDemo.java

package cn.itcast_03;

/*

* public boolean equals(Object obj):指示其他某个对象是否与此对象“相等”。

* 这个方法,默认情况下比较的是地址值。比较地址值一般来说意义不大,所以我们要重写该方法。

* 怎么重写呢?

* 一般都是用来比较对象的成员变量值是否相同。

* 重写的代码优化:提高效率,提高程序的健壮性。

* 最终版:

* 其实还是自动生成。

*

* 看源码:

* public boolean equals(Object obj) {

* //this - s1

* //obj - s2

* return (this == obj);

* }

*

* ==:

* 基本类型:比较的就是值是否相同

* 引用类型:比较的就是地址值是否相同

* equals:

* 引用类型:默认情况下,比较的是地址值。

* 不过,我们可以根据情况自己重写该方法。一般重写都是自动生成,比较对象的成员变量值是否相同

*/

public class StudentDemo {

public static void main(String[] args) {

Student s1 = new Student("林青霞", 27);

Student s2 = new Student("林青霞", 27);

System.out.println(s1 == s2); // false

Student s3 = s1;

System.out.println(s1 == s3);// true

System.out.println("---------------");

System.out.println(s1.equals(s2)); // obj = s2;

//false

System.out.println(s1.equals(s1)); // true

System.out.println(s1.equals(s3)); // true

Student s4 = new Student("风清扬",30);

System.out.println(s1.equals(s4)); //false

Demo d = new Demo();

System.out.println(s1.equals(d));

//ClassCastException

}

}

class Demo {}

20 垃圾回收器

Student.java

package cn.itcast_04;

public class Student implements Cloneable { private String name;

private int age;

public Student() {

super();

}

public Student(String name, int age) { super();

https://www.sodocs.net/doc/7a1333515.html, = name;

this.age = age;

}

public String getName() {

return name;

}

public void setName(String name) {

https://www.sodocs.net/doc/7a1333515.html, = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

@Override

protected Object clone() throws CloneNotSupportedException {

return super.clone();

}

}

StudentDemo.java

package cn.itcast_04;

/*

Java入门基础代码

例1-1 DoubleVariableDemo.java class DoubleVariableDemo{ public static void main(String args[]){ double dRadius=2.0d; double dArea=Math.PI*dRadius*dRadius; System.out.println("半径为2的圆的面积:"+dArea); } } 例1-2 BooleanConstantDemo.java class BooleanConstantDemo{ public static void main(String args[]){ final boolean BFLAG=true; if(BFLAG) System.out.println("Always Print Out Me!"); else System.out.println("Never Print Out Me!"); } } 例1-3 DecisionDemo.java class DecisionDemo{ public static void main(String args[]){ short x=1,y=2,z; // 错误代码 // z = x + y; // 正确代码 z=(short)(x+y); System.out.println(z); } } 例1-4 IntegerConstantDemo . java class IntegerConstantDemo{ public static void main(String args[]){ final byte nMaxValue_1=100; final short nMaxValue_2=200; final int nMaxValue_3=300; final long nMaxValue_4=400; System.out.println("整数常量的nMaxValue_1值"+nMaxValue_1); System.out.println("整数常量的nMaxValue_2值"+nMaxValue_2); System.out.println("整数常量的nMaxValue_3值"+nMaxValue_3); System.out.println("整数常量的nMaxValue_4值"+nMaxValue_4); // nMaxValue_1 = nMaxValue_1 + 1; 不能更改常量的值

实验5 JAVA常用类

山西大学计算机与信息技术学院 实验报告 姓名学号专业班级 课程名称 Java实验实验日期成绩指导教师批改日期 实验5 JAVA常用类实验名称 一.实验目的: (1)掌握常用的String,StringBuffer(StringBuilder)类的构造方法的使用;(2)掌握字符串的比较方法,尤其equals方法和==比较的区别; (3)掌握String类常用方法的使用; (4)掌握字符串与字符数组和byte数组之间的转换方法; (5)Date,Math,PrintWriter,Scanner类的常用方法。 二.实验内容 1.二进制数转换为十六进制数(此程序参考例题249页9. 2.13) 程序源代码 import java.util.*; public class BinToHexConversion{ //二进制转化为十六进制的方法 public static String binToHex(String bin){ int temp; //二进制转化为十六进制的位数 if(bin.length()%4==0) temp = bin.length()/4; else temp = bin.length()/4 + 1; char []hex = new char[temp]; //十六进制数的字符形式 int []hexDec = new int[temp];//十六进制数的十进制数形式 int j = 0; for(int i=0;i=0&&dec<10) return (char)('0'+dec-0); else if(dec>=10&&dec<=15) return (char)('A'+dec-10); else return '@'; }

《Java基础入门》-课后习题答案--1-6

第1章Java开发入门 一、填空题 1、Java EE、Java SE、Java ME 2、JRE 3、javac 4、bin 5、path、classpath 二、选择题 1、ABCD 2、C 3、D 4、B 5、B 三、简答题 1、面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。 2、JRE(Java Runtime Environment,Java运行时环境),它相当于操作系统部分,提供了Java程序运 行时所需要的基本条件和许多Java基础类,例如,IO类、GUI控件类、网络类等。JRE是提供给普通用户使用的,如果你只想运行别人开发好的Java程序,那么,你的计算机上必须且只需安装JRE。 JDK(Java Development Kit,Java开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java开发人员使用的。初学者学习和使用Java语言时,首先必须下载和安装JDK。JDK中已经包含了JRE部分,初学者安装JDK后不必再去下载和安装JRE了。 四、编程题 public class HelloWorld { public static void main(String[] args) { System.out.println("这是第一个Java程序!"); } } 第2章Java编程基础 一、填空题 1、class 2、true和false 3、单行注释、多行注释、文档注释 4、基本数据类型、引用数据类型 5、1、2、4、8 6、& && | || 7、0 8、5 9、34 10、56 二、判断题 1、错 2、对 3、错 4、对 5、错

史上最全Java基础知识点归纳

史上最全Java基础知识点归纳 写这篇文章的目的是想总结一下自己这么多年来使用Java的一些心得体会,主要是和一些Java基础知识点相关的,所以也希望能分享给刚刚入门的Java 程序员和打算入Java开发这个行当的准新手们,希望可以给大家一些经验,能让大家更好学习和使用Java。 这次介绍的主要内容是和J2SE相关的部分,另外,会在以后再介绍些J2EE 相关的、和Java中各个框架相关的内容。 经过这么多年的Java开发,以及结合平时面试Java开发者的一些经验,我觉得对于J2SE方面主要就是要掌握以下的一些内容。 1.JVM相关(包括了各个版本的特性) 对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可。不过对于一个有着3年以上Java经验的资

深开发者来说,不会JVM几乎是不可接受的。 JVM作为Java运行的基础,很难相信对于JVM一点都不了解的人可以把Java语言吃得很透。我在面试有超过3年Java经验的开发者的时候,JVM几乎就是一个必问的问题了。当然JVM不是唯一决定技术能力好坏的面试问题,但是可以佐证Java开发能力的高低。 在JVM这个大类中,我认为需要掌握的知识有: JVM内存模型和结构 GC原理,性能调优 调优:Thread Dump,分析内存结构 class二进制字节码结构,class loader体系,class加载过程,实例创建过程 方法执行过程 Java各个大版本更新提供的新特性(需要简单了解) 2.Java的运行(基础必备) 这条可能出看很简单,Java程序的运行谁不会呢?不过很多时候,我们只是单纯通过IDE去执行Java程序,底层IDE又是如何执行Java程序呢?很多人并不了解。

Java基础入门教程(适合所有初学者)

第1章 Java语言概述与面向对象思想 1 1.1 Java语言的发展 1 1.1.1 Java语言的产生 1 1.1.2 Java语言的发展 1 1.2 Java语言的特点 2 1.3 面向对象与面向过程的差异 3 1.3.1 面向过程思想回顾 4 1.3.2 面向对象思想介绍 4 1.4 面向对象程序设计中的主要概念和特征 4 1.4.1 主要概念 5 1.4.2 主要特征 5 *1.5 Java与C++的差异 5 1.6本章小结5 习题 5 第2章 Java语言开发环境 6 2.1 JDK 6 2.1.1 JDK的简介6 2.1.2 JDK的构成6 2.1.3 JDK的使用6 2.2 IDE 8 2.2.1 IDE简介8 2.2.2 JBuilder 9 2.2.3 Eclipse 9 2.2.4 相关资源9 2.3 Project管理9 2.3.1 Project的含义9 2.3.2 可行的Project组织模式9 2.3.3 主要开发工具的Project目录10 2.4 本章小结10 习题10 第1章 Java语言概述与面向对象思想 1.1 Java语言的发展 1.1.1 Java语言的产生以介绍面向对象编程的基本概念、基本理论为重点,结合Java语言的语法规则、编程特点和设计思想、强调容易发生错误和编程应注意的地方,使学生能对Java 技术有一个总体了解,通过本课程学习,使学生掌握Java语言的基础知识,理解和掌握面向对象程序设计的基本思想,熟练地使用Java语言进行程序的编写、编译以及调试工作 上世纪90年代初期,Sun公司在研究一种适用于未来的智能设备的编程语言,该语言要具有一些新的特性,以避免C++的一些不足。 该语言起初命名为Oak,来源于语言作者Gosling办公室窗外的一棵橡树(Oak)。后来在注册时候遇到了冲突,于是就从手中的热咖啡联想到了印度尼西亚一个盛产咖啡的岛屿,中文名叫爪哇,Java语言得名于此。 随着Internet的迅速发展,Web应用日益广泛,Java语言也得到了迅速发展。1994年,Gosling

适合java入门学习的书籍推荐

适合java入门学习的书籍推荐 作为Java初级学习者而已,最痛苦的事情莫过于想要学好java,但是面对市场上纷繁的java学习书籍,往往容易感到无所适从。牛耳教育就java学习体系流程方面为大家挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java爱好者们。 一、Java编程入门类 1、《Java编程思想》 2、《Agile Java》中文版 二、Java编程进阶类 1、《重构改善既有代码的设计》 这本书名气很大,不用多介绍,可以在闲暇的时候多翻翻,多和自己的实践相互印证。这本书对产生影响是潜移默化的。 2、《测试驱动开发 by Example》 本书最大特点是很薄,看起来没有什么负担。可以找一个周末的下午,一边看,一边照做,一个下午就把书看完,这本书的所有例子跑完了。这本书的作用是通过实战让你培养TDD的思路。 三、Java架构师之路 到这个阶段,应该已经非常娴熟的运用Java编程,而且有了一个良好的编程思路和习惯了,但是可能还缺乏对应用软件整体架构的把握,现在就是迈向架构师的第一步。 1、《Expert One-on-One J2EE Design and Development》 这本书是Rod Johnson的成名著作,非常经典,从这本书中的代码诞生了springframework。但是好像这本书没有中译本。 2、《Expert One-on-One J2EE Development without EJB》 这本书由gigix组织翻译,多位业界专家参与,虽然署名译者是JavaEye,其实JavaEye出力不多,实在是忝居译者之名。

JAVA技术--Java基础知识常见考试题JAVA技术.doc

一、单选题 1.对类:(B) public class Test( //...do something } 下面那个正确地定义了类Test的构造函数。 A)public void Test() () B)publicTest()(} C ) public static Test() (} D) publicTest(); 2.下面哪个函数是public void example()(...)的重载函数。(A) A)public void example( float f)(...) B)public int example() (...) C)public void example2()(...} D)public int example_overLoad ()(...) 3.下面的代码段中,执行之后i和j的值是_C_。 int i = 1; intj; j = i++; A)1, 1 B) 1,2 C) 2, 1 D) 2,2 4.以下for循环的执行次数是_B o for(int x=0,y=0;(y !=0)&&(x<4) ;x++); A)无限次B) 一次也不执行 C)执行4次D)执行3次 5.下面程序的输出结果是—C o public class People( String name; int id; public People( String str, int n )( name = str; id = n; } public String toString(){ return id + " :” + name; } public String print()(

JAva基础期末考试试卷

一、填空题 1、面向对象的三大特征是______、______和______。 2、在程序开发中,要想将一个包中的类导入到当前程序中,可以使用______关键字。 3、编译Java程序需要使用______命令。 4、如果子类想使用父类中的成员,可以通过关键字______引用父类的成员。 5、在Java语言中,所有的类都直接或间接继承自______类。 6、定义一个Java类时,如果前面加使用______关键字修饰,那么该类不可以被继承。 7、String类中用于返回字符串字符个数的方法是_____。 8、若x = 2,则表达式( x + + )/3 的值是______。 9、定义在类中的变量被称为______,定义在方法中的变量被称为______ 10、若int a[3][2]={{123,345},{34,56},{34,56}},则a[2][1]= ______。 二、选择题 1、先阅读下面的程序片段: String str = "abccdefcdch"; String[] arr = str.split("c"); System.out.println(arr.length); 程序执行后,打印的结果是几? A、2个 B、3个 C、4个 D、5个 2、以下关于变量的说法错误的是? A、变量名必须是一个有效的标识符 B、变量在定义时可以没有初始值 C、变量一旦被定义,在程序中的任何位置都可以被访问 D、在程序中,可以将一个byte类型的值赋给一个int类型的变量,不需要特殊声 明 3、在Java中,要想让一个类继承另一个类,可以使用以下哪个关键字? A、inherits B、implements C、extends D、modifies 4、类中的一个成员方法被下面哪个修饰符修饰,该方法只能在本类被访问? A、public B、protected C、private D、defaul 5、关于super关键字以下说法哪些是正确的?(多选) A、super关键字可以调用父类的构造方法 B、super关键字可以调用父类的普通方法 C、super与this不能同时存在于同一个构造方法中 D、super与this可以同时存在于同一个构造方法中 6、已知类的继承关系如下: class Employee; class Manager extends Employeer; class Director extends Employee; 则以下语句能通过编译的有哪些? A、Employee e=new Manager(); B、Director d=new Manager(); C、Director d=new Employee(); D、Manager m=new Director(); 7、String s = "abcdedcba";则s.substring(4,5)返回的字符串是以下选项中的哪个? A、cd B、de C、d D、e 8、关于抽象类的说法哪些是正确的?(多选) A、抽象类中可以有非抽象方法。

JAVA中常用类的常用方法

JAVA中常用类的常用方法 一、https://www.sodocs.net/doc/7a1333515.html,ng.Object类 1、clone()方法 创建并返回此对象的一个副本。要进行“克隆”的对象所属的类必须实现https://www.sodocs.net/doc/7a1333515.html,ng. Cloneable接口。 2、equals(Object obj)方法 ?功能:比较引用类型数据的等价性。 ?等价标准:引用类型比较引用,基本类型比较值。 ?存在特例:对、Date及封装类等类型来说,是比较类型及对象的内容而不考虑引用的是否为同一实例。 3、finalize()方法 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。 4、hashCode()方法返回该对象的哈希码值。 5、notify()方法唤醒在此对象监视器上等待的单个线程。 6、notifyAll()方法唤醒在此对象监视器上等待的所有线程。 7、toString()方法 返回该对象的字符串表示。在进行String与其它类型数据的连接操作时,自动调用toString()方法。可以根据需要重写toString()方法。 8、wait()方法 在其他线程调用此对象的notify() 方法或notifyAll() 方法前,导致当前线程等待。 二、字符串相关类 l String类 charAt(int index) 返回指定索引处的char 值。 compareTo(String anotherString) 按字典顺序比较两个字符串。 compareToIgnoreCase(String str) 按字典顺序比较两个字符串,不考虑大小写。 concat(String str) 将指定字符串连接到此字符串的结尾。 endsWith(String suffix) 测试此字符串是否以指定的后缀结束。 equals(Object anObject) 将此字符串与指定的对象比较。 equalsIgnoreCase(String anotherString) 将此String 与另一个String 比较,不考虑大小写。indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。 indexOf(String str) 返回第一次出现的指定子字符串在此字符串中的索引。 lastIndexOf(int ch) 返回指定字符在此字符串中最后一次出现处的索引。 length() 返回此字符串的长度。 replace(char oldChar, char newChar) 返回一个新的字符串,它是通过用newChar 替换此字符串中出现的所有oldChar 得到的。split(String regex) 根据给定正则表达式的匹配拆分此字符串。 startsWith(String prefix) 测试此字符串是否以指定的前缀开始。 substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串。该子字符串始于指定索引处的字符,一直到此字符串末尾。 substring(int beginIndex, int endIndex) 返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的beginIndex 处开

《Java编程基础知识点汇总及习题集》--答案

目录 第一章 Java入门 (2) 第二章 Java基础 (5) 第三章条件转移 (16) 第四章循环语句 (22) 第五章方法 (28) 第六章数组 (35) 第七章面向对象 (44) 第八章异常 (65)

第一章Java入门 知识点汇总 1、JAVA 三大体系 ?Java SE:(J2SE,Java2 Platform Standard Edition,标准版),三个平台中最核心 的部分,包含Java最核心的类库。 ?JavaEE:(J2EE,Java 2 Platform, Enterprise Edition,企业版),开发、装 配、部署企业级应用,包含Servlet、JSP、 JavaBean、JDBC、EJB、Web Service等。 ?Java ME:(J2ME,Java 2 Platform Micro Edition,微型版),用于小型电子设备 上的软件开发。 2、JDK,JRE,JVM的作用及关系 作用 ★JVM:保证Java语言跨平台 ★JRE:Java程序的运行环境 ★JDK:Java程序的开发环境 关系 ★JDK:JRE+工具 ★JRE:JVM+类库 3、JDK环境变量配置 ?path环境变量:存放可执行文件的存 放路径,路径之间用逗号隔开 ?classpath环境变量:类的运行路径, JVM在运行时通过classpath加载需要 的类 4、重点掌握两个程序 ?javac.exe:Java编译器工具,可以将编 写好的Java文件(.java)编译成Java 字节码文件(.class); ?java.exe:Java运行工具,启动Java虚 拟机进程,运行编译器生成的字节码 文件(.class) 5、一切程序运行的入口 public static void main(String args []){ System.out.println(“Hello World!”); } 课堂笔记

java常用类知识点总结

java常用类知识点总结 Java常用类 要求: 1、掌握String和StringBuffer的区别,可以熟练使用String和StringBuffer的各 种方法进行相关操作。 2、能够自己编写一个得到日期的操作类,并将日期进行格式化操作。 3、掌握比较器及其基本原理,并可以通过比较器进行对象数组的比较操作。 4、掌握对象克隆技术及其实现 5、能够灵活应用正则表达式对字符串的组成进行判断 6、掌握Math、Random、基本数据类型的包装类的使用 7、描述出Object System对垃圾收集的支持 8、使用NumberFormat、DecimalFormat、BigInteger、BigDecimal进行数字的操 作 String和StringBuffer String的内容一旦声明不可改变,如果要改变,改变的是String的引用地址,如果一个字符串要经常改变,必须使用StringBuffer。 在一个字符串内容需要频繁修改时,使用StringBuffer可以提升操作性能,因为StringBuffer内容可以改变,而String内容不可改变。StringBuffer支持的方法大部分与String类似。 StringBuffer常见用法: (1) 字符串的连接操作

String类可以通过“+“进行字符串的连接,而StringBuffer中却只能使用append方法进行字符串的连接,而且此方法返回一个StringBuffer类的实例,这样就可以采用代码链的形式一直调用append方法。 (2) 在任意位置处为StringBuffer添加内容 可以使用insert方法在指定位置上为StringBuffer添加内容 字符串的反转操作(较为常见的操作,使用reverse方法) (3) 替换指定范围的内容 replace方法可对指定范围的内容进行替换。在String中如果要替换,使用的是replaceAll (4) 字符串截取(使用subString方法从指定范围中截取内容) (5) 删除指定范围的字符串(使用delete方法删除指定范围内容) (6) 查找指定内容是否存在(indexOf查找指定内容,查找到返回内容的位置, 没查到返回-1) 问题:(1)String s = "Hello";s = s + " world!";这两行代码执行后,原始的String对象中的内容到底变了没有, 没有。因为String被设计成不可变(immutable)类,所以它的所有对象都是不可变对象。在这段代码中,s原先指向一个String对象,内容是 "Hello",然后我们对s进行了+操作,那么s所指向的那个对象是否发生了改变呢,答案是没有。这时,s不指向原来那个对象了,而指向了另一个 String对象,内容为"Hello world!",原来那个对象还存在于内存之中,只是s这个引用变量不再指向它了。通过上面的说明,我们很容易导出另一个结论,如果经常对字符串进行各种各样的修改, 或者说,不可预见的修改,那么使用String来代表字符串的话会引起很大的内存开销。因为 String对象建立之后不能再改变,所以对于每一个不同的字符

《Java基础入门》_课后习题答案解析__1~

第1章 Java开发入门 一、填空题 1、Java EE、Java SE、Java ME 2、JRE 3、javac 4、bin 5、path、classpath 二、选择题 1、ABCD 2、C 3、D 4、B 5、B 三、简答题 1、面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。 2、JRE(Java Runtime Environment,Java运行时环境),它相当于操作系统部分,提供了Java程 序运行时所需要的基本条件和许多Java基础类,例如,IO类、GUI控件类、网络类等。JRE是提供给普通用户使用的,如果你只想运行别人开发好的Java程序,那么,你的计算机上必须且只需安装JRE。 JDK(Java Development Kit,Java开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java开发人员使用的。初学者学习和使用Java语言时,首先必须下载和安装JDK。JDK中已经包含了JRE部分,初学者安装JDK后不必再去下载和安装JRE了。 四、编程题 public class HelloWorld { public static void main(String[] args) { System.out.println("这是第一个Java程序!"); } } 第2章 Java编程基础 一、填空题 1、 class 2、 true和false 3、单行注释、多行注释、文档注释 4、基本数据类型、引用数据类型 5、 1、2、4、8 6、 & && | || 7、 0 8、 5 9、 34 10、56 二、判断题 1、错 2、对 3、错 4、对 5、错

java入门基础笔试题

笔试题 一、选择题 1)对以下代码,下面说法正确的是() int k=10; while(k==0){ k=k-1; } A.循环将执行10次 B.死循环,将一直执行下去 C. 循环将执行1次 D.循环一次也不执行 2)下面变量名正确的是() A.num1 B.2num C.%num D.num# 3) else if块的选择结构应用于() A.switch选择结构 B.基本if选择结构 C.多重if选择结构 D.while循环 4)下面属于逻辑运算符的是() A.+ - * % B. ++ -- C.>= != <= D.&& || 5)在java中,以下代码的输出结果是()(选择一项)。 int num1=7; int num2=5; System.out.println(num1/num2); 选择一项 A:1.4 B:4 C:1 D:2 6)分析以下java代码程序,运行以下表达式后,变量a的值是()。 int a=5+4*3%2/1; A:1 B:2 C:3 D:4 E:5 7)在java中,如下代码的输出结果是()。 public static void main(String args[]){ double avg=0; int score1=61; int score2=78; avg=(score1+score2)/2; System.out.println(“平均分是:”+avg); A.平均分是69.0 B.平均分是69 C.平均分是69.0000 D.编译错误 8)在java中,以下()能够实现向控制台输出换行符。(选择二项) A.System.out.println(); B.System.out.print(“\n”); C.System.out.print(“\t”); D.System.out.print(“”); 9)Java代码如下所示,编译运行结果是()。 public static void main(string[] args){

java编程基础复习题.doc

“Java程序设计基础”课程习题 一、填空 1.Java程序分两类____ applet __ 和application, Java Application类型的程序,程序从 …main___ 开始执行。 2.定义一个Java类时,通过关键字.extends _____ 指明该类的父类。一个类可以有____ 1 — 个父类。 3.用public修饰的类称为—公共类—。用public修饰的类成员称为公有成员。被说明为 public的内容可以被_所有的其他类_____ 使用。如果public类文件与使用它的类文件不在同一目录屮,需要通过_impon—语句引入。 4.用_private_修饰的类成员称为私有成员。私有成员只能在_本类—中使 用。 5.如果子类定义的成员变量与父类的成员变量同名,称为—覆盖—,要表明使用子类的成员 变量,可以在成员变量前加上关键字—this— o 6._Object—类是Java类库中所有类的父类。 7.Jav“字符使用—16—位的字符集,该字符集成为—UTF-I6—。 8.当子类中定义的方法与父类方法同名吋,称子类方法—重载______ 父类方法,子类默认 使用自己的方法。使用父类的同名方法,必须用关键字-super—说明。 9.Java源程序文件名的后缀是_。java _____ , Java字节码文件名的后缀是_。class ______ 。 10.Java类名的第一个字母通常要求_大写—o 11.Java程序由_类定义_____ 组成,每个程序有一个主类,Java程序文件名应与—主— 类的名称相同。 12.Java—application __ 类型的程序需要main()方法,程序从—main方法_____ 开始执行。 13.布尔型数据类型的关键字是-boolean—,占用位数是_1—,有—true_和 .false ____ 两种值。整型数可以采用_八进制—、—十进制—和_十六进制— 三种进制表示。 14.八进制整数以数字_o—开头。十六进制整数以—Ox—开头。 15.int整型数占用32 位内存。lon£整型数占用&4 位内存。 16.127L表示long类型常量。 17.根据占用内存长度将浮点常量分为floal 和double 两种。 18.单精度浮点常量占用32 位内存,双精度浮点常量占用一64—位内存。 19.在Java语言中,字符串“ABC\tD\bE中包括7 个字符。 20.数学关系44&&x<9 数学关系x>3且x<=10对应 的Java表达式是_______ o数学关系x>3或xv?10对应的Java表达式是_______ 。 21.逻辑表达式(nac&&falsc&&true 的结果是_false _____ 。 22._new ____ 运算符的作用是根据对彖的类型分配内存空间。当对彖拥有内存空间时, 会自动调用类屮的构造方法为对象—初始化—o 23.省略访问修饰符的类只能被同—一个包—中的类使用,称之具有—包级—访问特性。 24.用public修饰的类称为—公共类—o用public修饰的类成员称为公共成员。被说明为 public的内容可以被—所有的其他类—使用。如果public类文件与使用它的类文件不在同一目录中,需要通过—import __________ 语句引入。 25.用_private_ 修饰的类成员称为私有成员。私有成员只能在—本类—使用。 26.在类中可以定义多个具有相同名称、但参数不同的方法,这种做法称为■重载—o 27.如果子类定义的成员变量与父类的成员变量同名,要表明使用子类的成员变量,可以在成

Java基础入门(第二版)

《Java基础入门(第二版)》试卷 得分 单选题(每题2分,共计30分) 1.阅读下列代码片段: public class Example{ public static void main(String[] args) { { int a = 1; System.out.print(a); } { int a = 2; System.out.print(a); } int a = 3; System.out.print(a); }} 下列选项中,哪一个是程序正确的运行结果() A、123 B、111 C、121 D、编译不通过 2.下列关于super关键字的说法中,正确的是() A、super关键字是在子类对象内部指代其父类对象的引用 B、super关键字不仅可以指代子类的直接父类,还可以指代父类的父类 C、子类通过super关键字只能调用父类的方法,而不能调用父类的属性 D、子类通过super关键字只能调用父类的属性,而不能调用父类的方法3.请阅读下面的程序,程序的运行结果是()。 class Person { String name; int age; public Person() {} public Person(String n, int a) { 总分题型单选题多选题填空题简答题题分 得分

name = n; age = a; } public void show() { System.out.print(name + "---" + age +" "); } } public class Test { public static void main(String[] args) { Person p1 = new Person(); p1.show(); Person p2 = new Person("周星驰", 27); p2.show(); } } A、null---0周星驰---27 B、null---27周星驰---27 C、周星驰---0null---27 D、周星驰---27null---274.下列有关HashSet集合的描述中,错误的是() A、HashSet是Set接口的一个实现类 B、向HashSet存入对象时,对象一般会重写hashCode()和equals()方法 C、向HashSet存入对象时,对象的equals()方法一定会被执行 D、HashSet存储的元素是不可重复的 5.请阅读下面的程序 public class Test { public static void main(String[] args) { int a = { 2, 0, 4, 1, 8, 3, 5 }; int temp; for (int i = 0; i < a.length - 1; i++) { for (int j = a.length - 1; j > i; j--) { if (aj < aj - 1) { temp = aj; aj = aj - 1; aj - 1 = temp; } }

java基础知识大全(必看经典)

第一讲 Java语言入门 1.1 Java的特点 1.1.1面向对象: ?与C++相比,JAVA是纯的面向对象的语言 C++为了向下兼容C,保留了很多C里面的特性,而C,众所周知是面向过程的语言,这就使 C++成为一个"混血儿"。而JAVA语法中取消了C++里为兼容C所保留的特性,如取消了头文件、指针算法、结构、单元等。 1.1.2可移植(平台无关性): ?生成中间字节码指令 与其他编程语言不同,Java并不生成可执行文件(.exe文件),而是生成一种中间字节码文件(.class文件)。任何操作系统,只要装有Java虚拟机(JVM),就可以解释并执行这个中间字节码文件。这正是Java实现可移植的机制。 ?原始数据类型存储方法固定,避开移植时的问题 Java的原始数据类型的大小是固定的。比如,在任何机器上,整型都是32位,而C++里整型是依赖于目标机器的,对16位处理器(比如8086),整数用两个字节表示;在像Sun SPARC这样的32位处理器中,整数用4个字节表示。在Intel Pentium处理器上,整数类型由具体的操作系统决定:对于DOS和Win32来说,整数是2个字节;对于Windows 9x 、NT和2000,整数是4个字节。当然,使整数类型平台无关之后,性能必然有所下降,但就Java来说,这个代价是值得的。Java的字符串,则采用标准的Unicode格式保存。可以说,没有这个特性,Java的可移植性也不可能实现。 1.1.3简单 ?JAVA在语法上与C++类似 JAVA的语法与C++很接近,有过C或者C++编程经验的程序员很容易就可以学会JAVA语法; ?取消了C++的一些复杂而低效的特性比如:用接口技术代替了C++的多重继承。C++中,一个类允许有多个超类,这个特性叫做"多重继承",多重继承使得编译器非常复杂且效率不高;JAVA 的类只允许有一个超类,而用接口(Interface)技术实现与C++的多继承相类似的功能 其它被取消的特性包括:虚拟基础类、运算符过载等 ?JAVA的基本解释器和类支持模块大概仅40K 即使加入基本的标准库和支持线程的模块,也才220K左右。与GUI(图形用户界面)相比,

《Java基础入门》课后习题

《Java基础入门》课后习题 第1章J ava开发入门 一、填空题 1、Java的三大体系分别是_JavaSE_____、_JavaEE_____、_JavaME_____。 2、Java程序的运行环境简称之为JRE_____。 3、编译Java程序需要使用_javac_____命令。 4、javac.exe和java.exe两个可执行程序存放在JDK安装目录的bin______目录下。 5、path______环境变量用来存储Java的编译和运行工具所在的路径,而_classpath_____环境变量 则用来保存保存Java虚拟机要运行的“.class”文件路径。 二、选择题 1、以下选项中,哪些属于JDK工具?(多选)ABCD A、Java编译器 B、Java运行工具 C、Java文档生成工具 D、Java打包工具 2、Java属于以下哪种语言?C A、机器语言 B、汇编语言 C、高级语言 D、以上都不对 3、下面哪种类型的文件可以在Java虚拟机中运行?D A、.java B、.jre C、.exe D、.class 4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种?B A、Java文档制作工具 B、Java解释器 C、Java编译器 D、Java启动器 5、如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和 java命令,需要将环境变量path设置为以下哪个选项?B A.d:\jdk;B.d:\jdk\bin;C.d:\jre\bin;D.d:\jre; 三、问答题 1、简述Java的特点。 2、简述JRE与JDK的区别。 四、编程题 使用记事本编写一个HelloWorld程序,在dos命令行窗口编译运行。请按照题目的要求编写程序并给出运行结果。 第2章J ava编程基础 一、填空题 1、Java中的程序代码都必须在一个类中定义,类使用__class____关键字来定义。 2、布尔常量即布尔类型的两个值,分别是_true_____和_flase_____。 3、Java中的注释可分为三种类型,分别是_单行注释//__、__多行注释_/**/__、文档/注释***/______。 4、Java中的变量可分为两种数据类型,分别是_基本数据类型_____和_引用数据类型_____。 5、在Java中,byte类型数据占____1__个字节,short类型数据占__2____个字节,int类型数据占 ___4___个字节,long类型数据占____8__个字节。 6、在逻辑运算符中,运算符___&___和___&&___用于表示逻辑与,__|____和__||____表示逻辑或。 7、若x=2,则表达式(x++)/3的值是__0___。

Java零基础入门知识整理

1. 什么是Java、Java2、JDK?JDK后面的1.3、1.4.2版本号又是怎么回事? 答:Java是一种通用的,并发的,强类型的,面向对象的编程语言(摘自Java规范第二版) JDK是Sun公司分发的免费Java开发工具,正式名称为J2SDK(Java2 Softw are Develop Kit)。 2. 什么是JRE/J2RE? 答:J2RE是Java2 Runtime Environment,即Java运行环境,有时简称JRE。 如果你只需要运行Java程序或Applet,下载并安装它即可。 如果你要自行开发Java软件,请下载JDK。在JDK中附带有J2RE。 注意由于Microsoft对Java的支持不完全,请不要使用IE自带的虚拟机来运行Applet,务必安装一个J2RE或JDK 3. 什么是J2SE/J2EE/J2ME? 答:J2SE就是一般的Java。 J2EE规范更多的是对J2EE服务器的要求和开发人员的约束。 J2ME是针对嵌入式设备的,比如Java手机,它有自己的SDK。而J2EE使用J2SE的SDK。 4. 学习Java用什么工具比较好? 1、最基本的开发运行工具:JDK+文本编辑器

2、集成开发环境:Eclipse或者MyEclipse或者NetBeans或者Intelij Idea。 3、数据库工具:MySQL或者Oracle。 4、服务器工具:Tomcat。 5. 学习Java有哪些好的参考书? 答:对于除了打游戏就不知道计算机开发是什么的同学,小雀推荐《Head First Java,2nd Edition(中文版)》,这本书涵盖了Java的基础知识、简单粗暴,语言风趣幽默,非常适合零基础的同学。 对于有一定计算机基础或者是计算机专业的童鞋来讲,小雀推荐《Thinking in Java》,《Java核心技术(卷1、2)》这两本,这两本书写作风格相对来说比较传统,不仅包含Java 基础知识而且涵盖Java的高级应用,但是对入门者有一定的基础要求。 当然书有很多各自推荐有各自的道理,深挖一本比浅读3本更有效。 6. Java和C++哪个更好? 答:这个问题是一个很不恰当的问题。你应该问:Java和C++哪个更适用于我的项目? 如果你不需要跨平台,不需要分布式,要强调程序的运行速度,C++更为适用。反之?你应当考虑Java。 7. 关键字是什么? 关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,是有特别意义的变量。 Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。 Java语言规定关键字不能作为标识符。目前共有50个Java关键字,其中,"const"和"goto"这两个关键字在Java语言中并没有具体含义。Java语言把它们列为关键字,只是因为"const"和"goto"是其他某些计算机语言的关键字。

相关主题