1、Java之父Golsling
1995年5月23日 Java诞生
1998年12月 1.2版本 Java2 J2SE J2EE J2ME
2004年12月 1.5版本(5.0) Java JavaSE JavaEE JavaME
2、Java SE --- Java标准平台
Java EE --- 企业级平台
Java ME --- 微小平台,用在资源受限的平台上
3、java的特点:
1、java是一种纯面向对象的语言
2、跨平台:一次编译,到处运行(write once,run anywhere)
编译
.java--------->.class(字节码)
解释
.class-------->可执行文件
java虚拟机(JVM):由虚拟机处理操作系统之间的差异,实现跨平台
_________
| |
| 解释器 |
|_________|
| JVM |
|_________|
| OS |
|_________|
3、简单高效
4、第一个程序(课堂代码:A.java)
文件名:A.java
class HelloWorld{
public static void main(String[] args){ //public 与 static 的位置可以交换,其它的不可以换位也不可以省略
System.out.println(12);
System.out.println("HelloWorld");
}
}
class Welcome{
public static void main(String[] args){
System.out.println("Welcome");
}
}
编译:javac A.java javac 文件名
解释:java HelloWorld java 类名
注意:一个源程序可以有多个类,一个类对应一个.class文件
如果一个源文件中有公开类,则源文件的文件名必须与公开类的类名完全同名(大小写也要相同)
一个源文件中至多只能有一个公开类
5、环境变量的设置
JAVA_HOME=/opt/jdk1.5.0_06 指向java的安装目录
PATH=$JAVA_HOME/bin:$PATH 指向安装目录下的bin子目录
CLASSPATH=. 类路径
export JAVA_HOME CLASSSPATH
windows下:我的电脑--->属性---->高级----->环境变量
path=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Rational\common;C:\Program Files\Java\jdk1.5.0_09\bin
CLASSPATH=.;C:\Program Files\Java\jdk1.5.0_09\lib\tools.jar
**6、包的概念:(课堂代码:HelloWorld.java)
文件多了用文件夹管理,类多了用包来管理,包和目录的结构一一对应
关键字package 例package p1; //p1是包名
编译时javac -d . HelloWorld.java 按照包结构生成.class文件,若目录不存在,会自动创建
运行时 java p1.HelloWorld 注意:运行时要使当前目录要在p1的上一级,不能进入p1目录下运行
引入哪个包里的哪个类:关键字import
import p6.p7.p8.Welcome; 声明以下用到Welcome时不带包名
import p6.p7.p8.*; *表示p6.p7.p8包下的所有类,不能表示子包
import java.lang.*; 用到java.lang下的类可以不写这句话,这是默认的
注意:
package
import
class
这三个顺序是不可改变的
习惯上:加包,加注释,换行,缩进
7、注释
单行注释://
多行注释:/*.....*/
/**.....*/ 这个也是多行注释,但编译时会把这种注释抽出来放在html中做成帮助文档
有这种注释在编译时要用:javadoc -d doc 源文件名
把生成的帮助文档放在doc目录下,生成的帮助文档就是doc目录下的index.html文件
这种注释修饰方法时放在方法前,修饰类时放在类前
8、标识符
只能包括字母,下划线,$ , 数字,但数字不能开头,区分大小写,关键字不能做标识符
一个汉字就是一个字母,汉字也可做标识符,但习惯上不用
包名也是标识符
java的关键字都是小写字母,幻灯片44的关键字
关键字 assert 1.4添加的
enum 1.5添加的
goto , const 是保留字,java中不能使用
true , false 不是关键字,是布尔类型的字面值
习惯上:包名---- 全是小写字母
类名---- 每个单词的首字母大写,其它的都是小写
变量名、方法名------- 第一个单词都是小写,第二个单词及以后的每个单词首字母大写
常量------ 全大写
9、变量
局部变量:在方法内定义的变量
(1)一定要先赋值后使用
(2)作用范围:从定义开始到定义它的代码块结束
(3)在重合范围不允许两个局部变量命名冲突
10、数据类型 (课堂代码:TestDataType.java)
基本类型:8种
(1)与整型相关的:byte 1B -128~127
byte a=1;byte b=2; byte c=a+b; //error!!! 因为a+b后自动把类型提升为int,把4个字节的赋给低
正确写法: byte c=(byte)a+b;
short 2B -32768~32767
int 4B -2147483648~2147483647
long 8B -2的63次方---2的63次方-1 字面值+l或L
(2)与浮点数相关的:
float 4B 赋值时加f
double 8B 赋值时加d
float f=1.3; //error! 默认为double
(3)布尔值: boolean 1B 字面值 true,false 意味着布尔值和整数不能转换 if(1) //error!!!!
(4)字符型:char 2B 采用unicode编码 //用一个字节来表示一个字符
char c='a'; char c=97;
char c='\u0061' -----unicode码值(16进制) 1个16进制表示2个字节
对象类型
字符串:String str="abc";
a+b 若有一方为字符串,则为字符串连接
"1"+2+3 结果是"123"
1+2+"3" 结果是"33"
11、类型自动提升:
a ? b //两个数进行运算
switch(a,b类型){
case double: 结果 double; //先看有没有一个是double 结果就是double
break;
case float: float; //先看有没有一个是float 结果就是float
break;
case long: long; //先看有没有一个是long 结果就是long
break;
default: int;break; //不满足上述三条则结果为int
}
byte a=10;
a=a+10; //error 有自动类型提升
a+=10; 没有自动类型提升
12、运算符(TestOperator.java)
/ 两个整型相除结果为整型 例: 5/2=2 5.0/2=2.5
计算机采用的是补码
>> 有符号右移1位,最高位用符号位
<< 有符号左移1位,最高位用符号位
>>> 无符号右移,不管之前是正数是负数,移完以后都是正数
13、流程控制
(1)控制流
if()
if()….else
if()…..else if()….else
注意:else只是和其上面的同层的最近的if()来配对。
(2)switch(s){
case 'a':……break;
case 1:……break;
default:....break;
}
注意:switch()内数据类型为byte short char int类型,只有以上四种类型的才可以在switch()中使用。
case块中不加break时顺序执行下面的语句。
(3)循环语句
for(int i=0;i
不知道次数知道循环条件最好用以下两个
while(){} ---- 循环0或多次
do{} while();-----------注意加分号 循环1或多次
阅读(1861) | 评论(0) | 转发(0) |