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 NaN是java语言中特有的数,由Float和 Double两个封装类提供,且不能把它作为一个普通数用于运算中,如==运算,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");
显示:false,true
而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)
}
}
显示:false,true
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.75,4.5
5.实验小问题总结
score1=1;score2=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对象
- Java习题札记
- Java札记
- Java 札记
- Java札记
- Java中文处理札记
- java 读书札记
- Java学习札记
- java NIO札记 .
- Java学习札记
- java小札记
- Java代码优化札记
- Java学习札记
- JAVA学习札记04
- JAVA学习札记05
- JAVA学习札记03
- JAVA学习札记02
- JAVA学习札记01
- JAVA学习札记06
- 用VS2013编译FFMPEG
- C++中set的使用
- 二叉树递归和非递归访问的实现
- Horizon 二次开发
- MFC调用dll文件
- Java习题札记
- Linux shell 脚本
- HDU4686---Arc of Dream(矩阵快速幂,大数据的坑题)
- 学习笔记2017.07.07-day5,am-HTML表单-HTML框架
- 防止Windows自动锁屏的VBA脚本
- 欢迎使用CSDN-markdown编辑器
- mysql 注意事项
- 日期函数
- Js作用域链及变量作用域