本文目录一览:
第一年学java,马上考试了,老师给的重点,求大神指教!!!
1、虚拟机机制:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。
2、
Application程序的编写与运行
编写源程序 (例HelloWorld.java)
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
注:保存的时候文件名要和类名一致,包括大小写
编译源程序
首先在附件 –》命令提示符下,进入该文件的根目录(例如)输入“e:”在DOS 下进入E盘
用javac命令编译源文件,如:
javac HelloWorld.java
运行Java程序
p执行java命令就可运行Java程序 ,如:
java HelloWorld
(2)Applet程序的编写与运行
编写源程序 (例MyFirstApplet.java)
import java.applet.*;
import java.awt.*;
public class MyFirstApplet extends Applet
{
public void paint(Graphics g)
{
g.drawString("Hello! java world!",2,20);
}
}
编译源程序
p 建立MyFirstApplet.html,将MyFirstApplet.class字节码文件放入其中。
HTML
HEAD
TITLE MyFirstApplet program /TITLE
/HEAD
BODY
p
applet code=MyFirstApplet.class width=300 height=200
/applet
/BODY
/HTML
浏览MyFirstApplet.html
3、基本类型:
(1)underfined(未定义类型)
(2)null(空类型)
(3)number(数值类型)
(4)string(字符串类型)
(5)boolean(布尔类型)
4、J2SE就是Java2的标准版,主要用于桌面应用软件的编程;
J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;
J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
5、在Java 中,同一个类中的2个或2个以上的方法可以有同一个名字,只要它们的参数声明不同即可。在这种情况下,该方法就被称为重载(overloaded ),这个过程称为方法重载(method overloading )。方法重载是Java 实现多态性的一种方式。如果你以前从来没有使用过一种允许方法重载的语言,这个概念最初可能有点奇怪。但是你将看到,方法重载是Java 最激动人心和最有用的特性之一
6、多态通过分离做什么和怎么做,从另一个角度将接口和实现分离开来。多态不但能够改善代码的组织结构和可读性,还能创建可扩展的程序,无论在项目最初还是添加新功能的时候都是可“生长”的程序。简单的来说多态就是将派生类的引用赋给基类,并通过基类的引用调用派生类的方法(前提派生类重写了基类的方法)。多态也称动作绑定,后期绑定或运行时绑定。多态的作用是消除类型之间的耦合关系。
7、this是Javascript语言的一个关键字。
它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。比如,
function test(){
this.x = 1;
}
随着函数使用场合的不同,this的值会发生变化。但是有一个总的原则,那就是this指的是,调用函数的那个对象。
如果子类中定义的成员变量和父类中成员变量同名时,子类就隐藏了从父类继承的成员变量。当子类中定义了一个方法,并且这个方法的名字、返回类型、参数个数和类型和父类的某个方法完全相同盟时,子类从父类继承的这个方法将被隐藏。如果在子类中想使用被隐藏的成员变量或方法就可以使用关键字。
8、Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。 接口的两种含义:一,Java接口,语言中存在的结构,有特定的语法和结构;二,一个类所具有的方法的特征集合,是一种逻辑上的抽象。前者叫做“Java接口”,后者叫做“接口”。
抽象类:包含了抽象方法的一个类叫作“抽象类”。如果一个类里包含了一个或多个抽象方法,类就必须指定成 abstract(抽象)。
9、数组:是一组相关变量的集合
数组是一组相关数据的集合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组、二维数组、多维数组
数据的有点
不使用数组定义100个整形变量:int i1;int i2;int i3
使用数组定义 int i[100];
数组定义:int i[100];只是一个伪代码,只是表示含义的
10、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()方法了!
11、有界面版:
/*
* Created on 2005-7-22
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
/**
* @author Administrator
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
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;i10 ;i++ )
f[i]=f[i-1]+f[i-2];
for (i=1;i=10 ;i++ )
{
System.out.println("F["+i+"]="+f[i-1]);
}
}
}12、1)异常数列处理机制:程序出现错误后程序如何处理,控制权交给异常处理器。(异常都是在运行中的,不是编译时的) 异常处理流程:遇到错误,方法立即结束,同时抛出一个异常对象。调用该方法的程序停止,并搜索一个可以处理该异常的,并执行其中的代码。 Error及RunTimeException及其子类为未检测异常,及自己会跑出不需要程序员抛出;而其他为已检测异常,需要程序员抛出。
2)线程创建:Java提供了线程类Thread来创建多线程的程序。其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象。每个Thread对象描述了一个单独的线程。要产生一个线程,有两种方法:
◆需要从Java.lang.Thread类派生一个新的线程类,重载它的run()方法; ◆实现Runnalbe接口,重载Runnalbe接口中的run()方法。
3)生命周期:新建-就绪-(阻塞)-运行--死亡
其中当用new 创建完一个线程对象后,该线程处于新建状态。
当线程对象调用了start()后,该线程处于就绪状态
如果处于就绪状态的线程获得CPU时间片,开始执行run方法的线程执行体,该线程处于运行状态
如果线程调用了sleep()或者调用了一个阻塞式IO方法等,该线程处于阻塞状态
如果线程的run()执行完成或者抛出一个未捕获的异常等原因,该线程处于死亡状态
神啊,累的我写了1个半小时。如果采纳的话,请给分,选为满意答案。
java考试给出了一个文件,放在d盘,编程读取该文件,采用流读取
BufferedRead br = new BufferedRead(new FileRead(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("文件创建成功");//打印文字
}
}
}