本文目录一览:
- 第一年学java,马上考试了,老师给的重点,求大神指教!!!
- java考试给出了一个文件,放在d盘,编程读取该文件,采用流读取
- [明天考试Java答辩 帮忙给程序写个注释。JAVA](#明天考试Java答辩 帮忙给程序写个注释。JAVA)
第一年学java,马上考试了,老师给的重点,求大神指教!!!
- 虚拟机机制:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。
- Application程序的编写与运行
编写源程序 (例HelloWorld.java)
注:保存的时候文件名要和类名一致,包括大小写 编译源程序 首先在附件 –》命令提示符下,进入该文件的根目录(例如)输入“e:”在DOS 下进入E盘 用class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } }
javac
命令编译源文件,如:
运行Java程序 执行javac HelloWorld.java
java
命令就可运行Java程序,如:
(2)Applet程序的编写与运行 编写源程序 (例MyFirstApplet.java)java HelloWorld
编译源程序 建立import java.applet.*; import java.awt.*; public class MyFirstApplet extends Applet { public void paint(Graphics g) { g.drawString("Hello! java world!", 2, 20); } }
MyFirstApplet.html
,将MyFirstApplet.class
字节码文件放入其中。 HTML
浏览<HEAD> <TITLE>MyFirstApplet program</TITLE> </HEAD> <BODY> <p> <applet code="MyFirstApplet.class" width="300" height="200"></applet> </p> </BODY>
MyFirstApplet.html
- 基本类型: (1)underfined(未定义类型) (2)null(空类型) (3)number(数值类型) (4)string(字符串类型) (5)boolean(布尔类型)
- J2SE就是Java2的标准版,主要用于桌面应用软件的编程; J2ME主要应用于嵌入式系统开发,如手机和PDA的编程; J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
- 在Java中,同一个类中的2个或2个以上的方法可以有同一个名字,只要它们的参数声明不同即可。在这种情况下,该方法就被称为重载(overloaded),这个过程称为方法重载(method overloading)。方法重载是Java实现多态性的一种方式。如果你以前从来没有使用过一种允许方法重载的语言,这个概念最初可能有点奇怪。但是你将看到,方法重载是Java最激动人心和最有用的特性之一。
- 多态通过分离做什么和怎么做,从另一个角度将接口和实现分离开来。多态不但能够改善代码的组织结构和可读性,还能创建可扩展的程序,无论在项目最初还是添加新功能的时候都是可“生长”的程序。简单地说,多态就是将派生类的引用赋给基类,并通过基类的引用调用派生类的方法(前提派生类重写了基类的方法)。多态也称动作绑定,后期绑定或运行时绑定。多态的作用是消除类型之间的耦合关系。
this
是Javascript语言的一个关键字。 它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。比如:
随着函数使用场合的不同,function test() { this.x = 1; }
this
的值会发生变化。但是有一个总的原则,那就是this
指的是调用函数的那个对象。 如果子类中定义的成员变量和父类中成员变量同名时,子类就隐藏了从父类继承的成员变量。当子类中定义了一个方法,并且这个方法的名字、返回类型、参数个数和类型和父类的某个方法完全相同,子类从父类继承的这个方法将被隐藏。如果在子类中想使用被隐藏的成员变量或方法就可以使用关键字。- Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。 接口的两种含义:一,Java接口,语言中存在的结构,有特定的语法和结构;二,一个类所具有的方法的特征集合,是一种逻辑上的抽象。前者叫做“Java接口”,后者叫做“接口”。
抽象类:包含了抽象方法的一个类叫作“抽象类”。如果一个类里包含了一个或多个抽象方法,类就必须指定成
abstract
(抽象)。 - 数组:是一组相关变量的集合
数组是一组相关数据的集合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组、二维数组、多维数组
数据的优点
不使用数组定义100个整形变量:
int i1; int i2; int i3;
使用数组定义:int i[100];
数组定义:int i[100];
只是一个伪代码,只是表示含义的 - Java里面什么时候可以用
==
和!=
来比较呢? 基本类型数据可以用==
和!=
来比较,什么是基本类型数据呢? Java里面有规定:boolean
、char
、byte
、short
、int
、long
、float
、double
、void
都属于基本类型数据,基本类型的数据不需要用new
来创建变量,而是创建一个并非是引用的变量,直接存储“值”并置于堆栈中(其它的对象是存储在堆中,堆栈比堆具有更高的存取速度),所以它们可以==
和!=
来直接比较大小。 如果要比较两个非基本类型的数据是否相等,应该用什么方法呢? 当然是equals()
方法,还是上面的例子,如果改为用equals()
方法来判断就可以得到想要的结果了:
最终输出的结果是Integer n1 = new Integer(100); Integer n2 = new Integer(100); System.out.println(n1.equals(n2));
true
。 虽然结果正如我们所预料的那样,但事情总没那么简单!如果你创建了一个自己的类,例如:
然后再来比较这个类的两个对象的值:class Value { int i; }
最终输出的结果是Value v1 = new Value(); Value v2 = new Value(); v1.i = v2.i = 100; System.out.println(v1.equals(v2));
false
。 事情再次令人费解了,静下心来好好想想,equals()
方法是怎么来的,是时候查查JDK文档了。 Java中所有的类都继承于Object
类,而Object
类中就有equals()
方法,但从JDK文档中我们可以知道,这个方法默认比较的是对象的引用,而不是对象的内容。而之前Integer
类的两个对象之所以能得到正确的结果,是因为Integer
类重写了equals()
方法。 一切也就豁然开朗了,如果要比较自己创建的类的两个对象值是否相等就得重写equals()
方法了! - 有界面版:
无界面版:import java.awt.*; import java.awt.event.*; import javax.swing.*; public class FibonacciTest extends JApplet implements ActionListener { JLabel numLabel, resultLabel; JTextField num, result; public void init() { Container c = getContentPane(); c.setLayout(new FlowLayout()); numLabel = new JLabel("Enter integer and press Enter"); c.add(numLabel); num = new JTextField(10); num.addActionListener(this); c.add(num); resultLabel = new JLabel("Fibonacci Value is"); c.add(resultLabel); result = new JTextField(15); result.setEditable(false); c.add(result); } public void actionPerformed(ActionEvent e) { long number, fibonacciValue; number = Long.parseLong(num.getText()); showStatus("Calculating..."); fibonacciValue = fibonacci(number); showStatus("done."); result.setText(Long.toString(fibonacciValue)); } public long fibonacci(long n) { if (n == 0 || n == 1) return n; else return fibonacci(n - 1) + fibonacci(n - 2); } }
class Fibonacci { public static void main(String[] args) { int i; int f[] = new int[10]; f[0] = f[1] = 1; for (i = 2; i < 10; i++) f[i] = f[i - 1] + f[i - 2]; for (i = 1; i <= 10; i++) { System.out.println("F[" + i + "]=" + f[i - 1]); } } }
- (1)异常数列处理机制:程序出现错误后程序如何处理,控制权交给异常处理器。(异常都是在运行中的,不是编译时的) 异常处理流程:遇到错误,方法立即结束,同时抛出一个异常对象。调用该方法的程序停止,并搜索一个可以处理该异常的,并执行其中的代码。
Error
及RuntimeException
及其子类为未检测异常,即自己会抛出不需要程序员抛出;而其他为已检测异常,需要程序员抛出。 (2)线程创建:Java提供了线程类Thread
来创建多线程的程序。其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread
类或其子类的实例对象。每个Thread
对象描述了一个单独的线程。要产生一个线程,有两种方法:- 需要从
java.lang.Thread
类派生一个新的线程类,重载它的run()
方法; - 实现
Runnable
接口,重载Runnable
接口中的run()
方法。 (3)生命周期:新建-就绪-(阻塞)-运行--死亡 其中当用new
创建完一个线程对象后,该线程处于新建状态。 当线程对象调用了start()
后,该线程处于就绪状态。 如果处于就绪状态的线程获得CPU时间片,开始执行run
方法的线程执行体,该线程处于运行状态。 如果线程调用了sleep()
或者调用了一个阻塞式IO方法等,该线程处于阻塞状态。 如果线程的run()
执行完成或者抛出一个未捕获的异常等原因,该线程处于死亡状态。 神啊,累的我写了1个半小时。如果采纳的话,请给分,选为满意答案。
- 需要从
java考试给出了一个文件,放在d盘,编程读取该文件,采用流读取
BufferedReader br = new BufferedReader(new FileReader(new File("d:\\文件名字")));
String reader = null;
while (true) {
reader = br.readLine();
if (null == reader) {
break;
}
System.out.println(reader);
}
没试,应该是这样的吧,希望对你帮助
明天考试Java答辩 帮忙给程序写个注释。JAVA
class FileTest { // 好像这是一个关于文件读写的程序吧
public void FileTest() { // 定义一个方法
}
public static void main(String[] args) throws IOException { // 主函数
BufferedReader buf; // 流类的实例
buf = new BufferedReader(new InputStreamReader(System.in)); // 实例一个新的BufferedReader,用构造方法实例。new InputStreamReader(System.in)也就是得到一个从屏幕输入的实例
String str; // 实例化一个String对象
System.out.println("请输入要创建的文件名称:"); // 打印
str = buf.readLine(); // 将buf,也就是从屏幕得到的字符串赋值给str
File fileobj = new File(str); // 用构造方法实例一个新文件对象
System.out.println("文件目录是否存在:" + fileobj.exists()); // 输出判断这个文件是否成功的结果
System.out.println("路径:" + fileobj.getPath()); // 输出这个文件的路径
System.out.println("绝对路径:" + fileobj.getAbsolutePath()); // 输出绝对路径
if (fileobj.exists() == true) { // 如果文件存在
System.out.println("文件已存在,是否覆盖y/n"); // 输出文件已存在。。。。。。。
String a; // 实例化一个新的String对象
a = buf.readLine(); // 把从buf取得的值赋给a
if (a.equals("y")) { // a的对象的哈希值等于y
FileWriter fw = new FileWriter(fileobj); // 用构造方法,实例一个新文件对象
BufferedWriter bw = new BufferedWriter(fw); // 开始写文件
bw.write("大家好!"); // 写入字符串,大家好。。。
bw.write("我正在学习BufferedWriter"); // 同上
bw.newLine(); // 换行
bw.write("请多多指教!"); // 写入。。。。
bw.newLine(); // 换行
bw.write("e-mail:jianfengma1989@tom.com"); // 写入、、
bw.flush(); // 清缓存
fw.close(); // 结束写入,也就是关闭文件流
FileReader fr = new FileReader(fileobj); // 构造一个FileReader
BufferedReader br = new BufferedReader(fr); // 构造一个新的读取流
String line = br.readLine(); // 创建一个新String对象,并且从流里读取的一行字符串赋值给line这个对象
while (line != null) { // 如果读取的不为空,这里的循环就继续下去
System.out.println(line); // 打印读出来的字符串
line = br.readLine(); // 把读入的行赋值给line对象
}
br.close(); // 关闭br对象流
fr.close(); // 关闭fr对象流
System.out.println("文件覆盖成功"); // 打印文字
} else { // 否则,程序做什么
System.out.println("您选择不覆盖,程序结束"); // 打印文字
}
} else { // 否则,程序做什么
FileWriter fw = new FileWriter(fileobj); // 构造一个创建文件对象
System.out.println("文件创建成功"); // 打印文字
}
}
}