---------------------- <a href="http://edu.csdn.net/heima" target="blank">android培训</a>、<a href="http://edu.csdn.net/heima" target="blank">java培训</a>、期待与您交流! ----------------------
好的,android的学习告一段落了,今天开始复习java了,在学习视频教程的同时,多做些习题,最后复习完后,做些项目。
必须背背记一下!
今天从14:19开始学习:
1.好的,开始学习,会的就不用做笔记了,主要是查漏补缺。
Java是一次编译,到处运行的。
注意C语言编写的源程序的扩展名为.c
Java跨平台的根本原因:
只要一个相应的平台上有一个java字节码解析程序,我们的java字节码就可以在这个平台上解析执行。
Java源文件-编译之后成为.class字节码文件--不同平台的java字节码解析程序--在不同平台上执行。
注意一点:并不是所有的操作系统都有java字节码解析机器,也就是说,我们的java字节码文件并不能在所有的操作系统上运行。
2.我们平常所说的java有三个方面的意思:
一种开发语言,一套开发工具,一个运行环境。
开发工具与运行环境的搭建:
这个需要重点了解一下。
首先是java开发工具包:简称为JDK。
里面包括:
开发工具,比如说javac以及基础核心类。
运行环境,java及基础核心类。
JDK按照java的应用环境划分为:
J2SE:标准版
J2EE:企业版
J2ME:手机等微型设备
可以在sun公司的网站http://java.sun.com下载。
3.JDK的目录:
Bin目录:
它下面放的都是一些可执行的文件,像javac这个java编译工具。Java.exe就是java在windows底下执行的工具,也就是java虚拟机。
而demo目录是sun公司提供的一些例子程序。
操作系统上定义的环境变量:
在操作系统中我们可以采取两种方式来查看定义的环境变量,一种是在doc窗口中打上set,然后就可以查看到各种环境变量信息。还有一种就是在我的电脑上查看这个。
在打开的环境变量中有上下两栏,上面一栏是用户变量,下面一栏定义的是系统变量。
系统变量是指对这个系统上所有的用户都有效。而用户变量是指只对某个用户起作用,看看是哪个用户登录的这个操作系统时设置的。
4.环境变量的设置:
Path环境变量:在安装JDK程序之后,安装目录下的bin目录会提供开发java程序的一些必备工具,比如说javac,java.exe。设置path环境变量就是为了让让操作系统找到指定的工具程序。
Classpath就是为了让java执行环境也就是java.exe找到指定的.class文件。主要看看里面有class在里面
Java_home就是找到java开发工具和执行环境。
我们在命令行窗口中如何定义前缀呢,可以这样做,cd C:\Program Files\Java按回车就可以了。
注意你一个类里面如果定义了多个class,那么在编译之后,也会出现多个.class文件。
还有:
比如这个类:
Test.java:
Public class Test1{
}
class Test2{
}
我们来编译一下,会出错。
因为这个类中有个public,那么这个文件的定义必须以public类来命名,应该叫做Test1.java
所以,我们在一个源文件中,不可以有两个public类。
5.运行时,必须要main方法。
Java Test
一个类要直接交给java解析器解析运行,那么这个类中必须要有一个叫做main的函数。
class Test{
public static void main(String[] args){
}
}
此时就可以运行了。
Main函数是java虚拟机首先启动的,要想打印数据,就可以在里面写上内容。
以上就是java程序编译运行的过程。
6.windows操作系统下运行的是exe程序。
在实际开发中,我们还需要掌握一些小工具或者会查阅相关的资料,也就是JDK文档。
这个资料,sun公司经常进行更新,我们可以通过它来了解最新的技术。但是JDK文档也有一个缺陷,它不支持模糊查询,必须要全名,而不是写一部分就会显示出来。
不过我这边的CHM格式的帮助文档,就可以支持模糊查询。
还有要了解一个工具,就是人家给我们的很多例子文件都是.class文件,就是已经编译好了的。我们想要查看源程序代码,可以进行反编译,返回到原来的java源程序。这个反编译工具叫做JAD。
7.以后想了解人家的程序是怎么写的,可以利用这个工具。这个工具是一个命令行的工具。
好的,目前我已经下载了这个jad.exe
我们可以这样做:
进行命令行窗口,然后进入jad所在的目录cd C:\Program Files\Java\jdk1.6.0_10\bin回车。
这也就是找到了jad文件。然后jad -s java
就是要反编译成java类型的文件。
就是可以这样cd C:\Program Files\Java\jdk1.6.0_10\bin\jad -s java C:\Program Files\Java\javalesson\Test.class
这就是找到目录下的jad文件,然后-s java将javalesson目录下的Test.class文件反编译成java文件。
8.好的,开始java第二节课的学习:
Java的基本语法。
Java是区分大小写的。
语句分为结构定义语句,功能执行语句。比如说class Lesson2这就是一句结构定义语句,还有main方法也是一个结构定义语句,但是system.out.println是一条功能定义语句。功能定义语句要用一个分号进行结尾。
这个很好理解,有分号结尾的就是功能定义语句,而其他的就是结构定义语句,定义这个框架的。
我们这边采用UltraEdit来设计。
9.java标识符:
Java的标识符,比如说我们定义的类,方法,变量,传递给函数的参数等都是标识符,可以由字母,数字,下划线,美元符组成。但是不能以数字开头,不能是关键字。
Java关键字:
Java有很多关键字。
Java的标识符和关键字,大家不用去死记硬背。但要了解。
Java的常量:
常量就是在程序中持续不变的值。
常量分为:
整形常量:比如12就是十进制,0x12就是一个十六进制的,012就是八进制整数
长整形常量
浮点数常量:就是小数常量,后面有点的。
布尔常量:只有两种取值,true和false。
字符常量:
字符串常量:就是由一串连续的字符组成的字符串。
Null常量。
注意浮点数就是小数!
Java的变量:
变量就是系统为程序分配的一块内存,在这个内存中可以存储各种不同的数据。
10.java中的变量类型:
我们可以采用byte,short,int,long来定义整数类型。使用float,double来定义浮点小数类型。
注意如果是整数就用上面四个定义,如果是小数,就用float,double来定义。
然后还有其他的,比如字符型,布尔型。
注意:byte占用一个字节,是占用最小的。
Short占用两个字节,int占用四个字节,long占用8个字节。
Float占用四个字节,double占用八个个字节,
Char占用两个字节,boolean占用一个字节。
byte占用一个字节,数字大小为-27—27-1
short占用两个字节,数字大小为-215—215-1
int占用四个字节,数字大小为-231—231-1
long占用八个字节,数字大小为-263—263-1
float占用四个字节,数字大小为1.4E-45~3.4E+38 , -1.4E-45~-3.4E+38 。用二进制的指数形式表示一个浮点数的格式,如:101*22 , 101*2-3
double占用八个字节,数字大小为4.9E-324~1.7E+308, -4.9E-324~-1.7E+308 。
char占两个字节,数字大小为0—216-1,是unicode编码。字符的本来面目,我们为什么可以直接将一个数字赋给字符变量。
Boolean占一个字节,其取值只有两个,true和false。
Byte,short ,int ,long,float,double,char,boolean8种基本数据类型。
11.比如我们输入:
class Lesson{
public static void main(String[] args){
char ch=97;
System.out.println(ch);
}
}
然后编译运行,打印出a.为什么打印出a而不是97呢。因为char是字符型,而不是数值型,数值型只有byte,short,int,long,float,double.所以会把97当做是一个字符型来处理,而不是数值型。而97对应的是字符a,所以在屏幕上打印出了a。
98对应的是字符b,99对应的是字符c。
其实有一个更简单的,就是用单引号引入各个字符的本身:
比如:class Lesson{
public static void main(String[] args){
char ch='a';
System.out.println(ch);
}
}
打印出a。注意,我们这边讲得是字符型。还有用单引号。
12.注意它们之间的类型转换。
我们要注意比如数值型它们取值的范围大小。比如byte它取值的最大值就是+27.
如果我们定义:byte b=29;
然后编译一下,会报错。
还有一种情况我们定义一个float类型的变量。
例如:
float f=3.5;,编译一下程序,也会报错,可是float的取值远大于这个啊,没错,但是3.5是一个double类型的。
但是如果我们想把3.5作为一个float类型的,那该怎么办呢?我们可以这样做,在后面加上一个f。
Float f=3.5f ;注意,它表示的值还是3.5
所以注意byte类型最大是+27,而float定义小数可以再后面加上一个f,比如说3.5f表示的就是3.5,和double的意思是一样的。Char字符类型,可以这样char c='a';
13.类型转换分为隐式转换....
比如:
Int x=a;
Byte b=(byte)x;//那么x就变成了一个byte类型的变量。
我们在什么时候需要进行强制类型转换。当我要一把一个变量类型中的值,赋给另外一个变量的时候,就需要进行强制类型转换。
上面这句话很重要,一种变量的值是这么多,我们要将其赋给另一种不同类型的变量,你不能直接就赋给它,要进行强制类型转换,因为它们的类型不一样。
我们再来看看一个类型转换的问题:
Byte b=3;
B=b-3;//现在的b等于原来的b减去3.
然后编译一下程序,出错了,因为不能把一个byte类型的值减去一个int类型的值。
---------------------- <a href="http://edu.csdn.net/heima" target="blank">android培训</a>、<a href="http://edu.csdn.net/heima" target="blank">java培训</a>、期待与您交流! ----------------------