Java习题札记

来源:互联网 发布:java毕业设计免费下载 编辑:程序博客网 时间:2024/06/04 20:01

http://control.blog.sina.com.cn/blog_rebuild/blog/controllers/articlelist.php?uid=2046140381&p=1&status=5


2016-9-13 关键字及数据类型

 

一、关键字

 

二、数据类型

 

基本数据类型变量存的是数据本身,而引用类型变量存的是保存数据的空间地址。说白了,基本数据类型变量里存储的是直接放在抽屉里的东西,而引用数据类型变量里存储的是这个抽屉的钥匙,钥匙和抽屉一一对应。

注:关于 float 型和 double 型的区别,以及 char 型和 String 型的不同,在 wiki 中有相关的总结. 

 

 

三、运算符优先级

 

 

2016-9-16 除法和取余问题

1 整数除法中,除数为0,抛出一个算术异常ArithmeticException。整数取余运算中,除数为0,抛出一个ArithmeticException异常。
 如:
 class Test
 {
  public static void main(String args[])
  {
   System.out.println(3/0)
   System.out.println(3%0);
  }
 }

2 小数除法中,除数为0,输出一个Infinity常量。小数取余运算中,除数为0,抛出一个NaN常量。浮点数有无限值和Nan(非数值)概念。
 如: 
 class Test
 {
  public static void main(String args[])
  {
   System.out.println(3.0/0);
   System.out.println(3.0%0)
  }
 }

3 NaNjava语言中特有的数,由FloatDouble两个封装类提供,且不能把它作为一个普通数用于运算中,如==运算,NaN用于比较运算中,不会显示错误,但都只输出false。因此NaN只是通过调用isNaN()方法来判定是否一个东西是否数值;但在equals()方法中比较的是内容,就看具体数据了。
 如: 
 class Test
 {
  public static void main(String args[])
  {
   double x = 64.0;
   double y = 0.0;
  
   System.out.println(x%y == x%y);
  }
 }
显示:false

如:
 Double a = new Double(Double.NaN);
 Double b = new Double(Double.NaN);
 
 if(Double.NaN == Double.NaN)
  System.out.println("True");
 else
  System.out.println("False");

 if(a.equals(b))
  System.out.println("True");
 else
  System.out.println("False");
显示:falsetrue


  Infinity(极限数)即可进行比较,POSITIVE_INFINITY(正无穷)和NEGATIE_INFINITY(负无穷),可用于比较逻辑运算中。
 如:
 class Test
 {
  public stativ void main(String args[])
  {
   System.out.println(Float.NaN == Float.NaN);
   System.out.println(Float.POSITIVE_INFINITY == Float.POSITIVE_INFINITY)
  }
 }
显示:falsetrue

 

3 在取余操作中,余数的正负符号完全取决于左操作数,和作操作数的正负号一致。
 如:
 class Test
 {
  public static void main(String args[])
  {
   byte x = -64;
   byte y = -6;
   
   System.out.println(x/y + " " + x%y);

   x = 64;
   System.out.println(x/y + " " + x%y);
  }
 }
显示:10-4  -10 4

4 小数取余,用左边的操作数连续减去右边的操作数,直到结果小于右边的操作数,此结果为余。即对商截去小数位后的运算。
 如:
 class Test
 {
  public static void main(String args[])
  {
   double x = 64.5;
   double y = 6.0;
   
   System.out.println(x/y + " " + x%y);
  }
 }
显示:10.754.5

 

 

5.实验小问题总结

score1=1score2=1

整数截掉小数位后转为double





/3.0表示得数为double型:




/3.0f表示得数为float型:




表明Java中小数默认double类型:


 

 

 

 

 

2016-9-22

面向对象系列

 

1.各类型初始值


*字符型初始值为空格。


2.单例模式的应用

单例模式只能获得一个对象,将构造方法private,再通过一个静态方法返回该类的对象。(为了防止其他用户创建对象)

 

3.统计卖书数

Test.java

import java.util.Random;

 

public class Test {

 

public static void main(String[] args) {

// TODO Auto-generated method stub

String[] titles={"《Java从入门到精通》","《Java编程思想》","《算法导论》"

};

for(int i=0;i<5;i++){

new Book(titles[new Random().nextInt(3)]);

}

System.out.println("共售出"+Book.getCounter()+"本!");

}

}

 

Book.java

 

public class Book {

private static int counter=0;

public Book(String title){

System.out.println("售出:"+title);

counter++;

}

public static int getCounter(){

return counter;

}

}

静态的变量和方法可以直接用类名访问,不属于单个的对象。

 

 

 

2016-9-23 第一个applet小程序

Java applets像Java应用程序一样,它们的建立都是遵循相同的三个步骤—编写,编译及运行。不同 的是,它们是在一部分网页上运行,而不是在你的桌面上运行。

本文的主要目的是创建一个简单的Java applet. 为了达到这一点要遵循以下三个基本步骤:

1. 在Java中编写一个简单的applet

2. 编译Java源代码

3. 创建一个涉及到applet的HTML页

4. 在浏览器中打开HTML页

编写Java源代码

 

 

Microsoft product screen shot(s) reprinted with permission from Microsoft Corporation.

我使用记事本来创建我的Java源代码文件。打开你选择的editor并输入这样的代码:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

//Reference the required Java libraries

  import java.applet.Applet;

   import java.awt.*;

  //The applet code

  public class FirstApplet extends Applet {

  public void paint(Graphics g) {

  //Draw a rectangle width=250, height=100

  g.drawRect(0,0,250,100);

  //Set the color to blue

  g.setColor(Color.blue);

  //Write the message to the web page

  g.drawString("Look at me, I'm a Java Applet!",10,50);

  }

   }

不要过多的担心代码的意义。这是你的第一个applet,重要的是看一看它是如何创建,编译和运行的 。

保存文件

 

 

Microsoft product screen shot(s) reprinted with permission from Microsoft Corporation.

保存你的程序文件为“FirstApplet.java”。确保你使用的文件名是正确的。如果你看到如下显示的 代码:

public class FirstApplet extends Applet {

这是一个指令来调用applet类 “FirstApplet”。文件名要与这个类的名字相匹配并有一个“.java” 的扩展。如果你的文件没有另存为"FirstApplet.java",Java compiler就会抱怨而且不会编译你的 applet。

打开一个终端窗口

 

Microsoft product screen shot(s) reprinted with permission from Microsoft Corporation.

要打开一个终端窗口,需按下“Windows key”和字母“R”。

你将看到“Run Dialog”。输入“cmd”,点击“OK”。

终端窗口就显示出来。它它看成是文字版的Windows Explorer;它会让你砸电脑上浏览不同的目录,看 一看它们包含的文件,运行你想要的程序。在窗口中输入命令就可以完成这个了。

Java Compiler

Microsoft product screen shot(s) reprinted with permission from Microsoft Corporation.

我们需要终端窗口来访问叫做“javac”的Java compiler。这是一个要在FirstApplet.java文件中读 取代码的程序,把它翻译成你的电脑可以知道的语言。这个过程就做编译。就像Java应用程序一样,Java applet也必须编译。

为了在终端窗口运行javac,你需要告诉电脑它在哪里。在我的机器上,它在目录“C:\Program Files\Java\jdk1.6.0_06\bin”中。如果你没有这样的目录,在Windows资源管理器中搜索文件“javac” ,找到它的位置。

一但你找到它的位置,输入以下命令道终端窗口:

set path= *the directory where javac lives*

E.g.,

set path=C:\Program Files\Java\jdk1.6.0_06\bin

按回车。终端窗口不会做任何华而不实的东西,它只是返回到命令提示符。但是,compiler的路径现 在已经被设置。

 

改变目录

Microsoft product screen shot(s) reprinted with permission from Microsoft Corporation.

看一看在哪里保存了FirstApplet.java文件。我的文件保存地点是“C:\Documents and Settings\Paul\My Documents\Java\Applets”。

在终端窗口改变目录,要输入以下命令:

cd *directory where FirstApplet.java file is saved*

E.g.,

cd C:\Documents and Settings\Paul\My Documents\Java\Applets

通过看到左边的光标你可以分辨你在右边的目录中。我们现在准备编译applet。输入命令:

javac FirstApplet.java

在点击回车之后,compiler将看到包含在FirstApplet.java文件中的代码,并试着去编译它。如果它 不能,就会显示一系列的错位帮助你修复代码。

如果在没有任何信息提示下你返回到命令提示符处,说明你的applet编译成功了。如果不是这样,返 回在坚查你写的代码。确保它与example code相匹配并重新保存文件。一直这样做直到在没有任何错误提 示下运行javac。

Tip: 一但applets编译成功,你会在同样的目录中看到一个新的文件。它叫做“FirstApplet.class” 。这是你的applet已编译版本。

创建HTML文件

 

Microsoft product screen shot(s) reprinted with permission from Microsoft Corporation.

值得注意的是到目前为止你已经确切的遵循相同的步骤,如果你在创建一个Java应用程序。Applet被 创建并保存在一个文本文件中,通过javac compiler已经进行编译。

Java Applets不同于Java 应用程序,当它们运行的时候。现在需要的是涉及FirstApplet.class文件 的网页。记住,类文件是你的applet已编译的版本;这是你的电脑可以知道并执行的文件。

打开记事本,输入以下HTML代码:

?

1

2

3

4

5

6

7

8

9

<</code>HTML>

<</code>HEAD>

<</code>TITLE>My First Java Applet

</</code>HEAD>

<</code>BODY>

Here's my first Java Applet:

<</code>applet code="FirstApplet.class" width="300" height ="300">

</</code>BODY>

</</code>HTML>

在相同的目录中文件另存为“MyWebpage.html”作为你的Java applet 文件。

这个是在网页中最重要的一行:

< applet code="FirstApplet.class" width="300" height ="300">

当网页被显示,它会告诉浏览器打开你的Java applet并运行它。

打开HTML页

 

 

Microsoft product screen shot(s) reprinted with permission from Microsoft Corporation.

最后一步也是最好的一个;我们可以看到Java applet开始运行了。使用Windows Explorer来导航在 HTML页中储存的目录。例如,我的网页保存在“C:\Documents and Settings\Paul\My Documents\Java\Applets”和我的另一个Java applet文件。

双击MyWebpage.html文件。你的默认浏览器将打开,Java applet将会运行。

恭喜你!你已经创建了你的第一个Java applet!

快速小总结

花一点时间来总结一下创建Java applet的步骤。它们在你创建的每一个applet都是相同的:

1. 在文本文件中编写Java 代码

2. 保存文件

3. 编译代码

4. 修复错误

5. 在HTML也中参考applet

6. 过浏览网页运行applet

 

2016-9-25

 

1.重写哈希码函数


将重写equals()方法用到的成员变量乘以不同的质数求和得新的哈希吗。

 

注:Java将内存空间分成两块,即堆和栈。栈中保存基本类型和引用变量,堆中保存对象。对于引用变量,使用“=”将修改引用,而不是复制堆中的对象。两个引用变量指向同一个对象,如果一个变量对其修改则会改变另一个变量。   ——此即“假克隆”

 

2.浅克隆(employee的例子更贴切)


相对应的深克隆的情况是,引用类型中还有可变的引用类型成员变量,它也需要克隆。

用序列化克隆对象效率远大于克隆方法的方式。


 

3.简单的车辆销售

可以写返回类型为Car的方法,return new BWM();//返回一个子类的实例对象

 

4.comparable接口自定义排序

重写接口中定义的compareTo方法,调用Collections.sort();//列表中的自动排序方法,数组中的是Arrays.sort();

 

5.策略模式

例子:保存图片格式

 

6.获得Class对象

 

原创粉丝点击