📄 day01.txt
字号:
Core Java(day01) 2007-12-3 --- 李艳
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 --- 微小平台,用在资源受限的平台上
Java SE和JAVA EE是我们主修的
3、环境变量的设置
Linux下: /etc/.profile这是所有用户的全局的文件
主目录下的vi .bashrc这是当前的用户
export JAVA_HOME=/opt/jdk1.5.0_06 指向java的安装目录
export PATH=$JAVA_HOME/bin:$PATH 指向安装目录下的bin子目录
export CLASSPATH=.:$JAVA_HOME/lib 类路径
用source .bashrc 生效或注销
主目录下vi .bash_profile
JAVA_HOME=/opt/jdk1.5.0_06 指向java的安装目录
PATH=$JAVA_HOME/bin:$PATH 指向安装目录下的bin子目录
CLASSPATH=.:$JAVA_HOME/lib 类路径
export JAVA_HOME CLASSSPATH PATH
在以上两个文件配置都可以,只配置一个文件就可以
配置完以后用source .bash_profile生效或注销
windows下:我的电脑(右键)--->属性---->高级----->环境变量
用户变量针对的是当前用户
系统变量针对所有的用户
在用户变量和系统变量这两个里面只配一个
JAVA_HOME=c:\Program Files\Java\jdk1.5.0_09(不是JRE)
path=%JAVA_HOME%\bin (可执行文件) (path里原有的内容不要改变,只在其后进行添加即可)
CLASSPATH=.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;
验证是否配置成功:在cmd后,输入javac就可以了,看是否有帮助信息
Linux下:在命令行输入javac就行了
4、java的特点:
1、java是一种纯面向对象的编程语言
2、跨平台:一次编译,到处运行(write once,run anywhere)
编译(javac)
.java(源文件)---------------->.class(字节码--与平台无关)
解释(java)
.class------------------------->可执行文件
java虚拟机(JVM):由虚拟机处理操作系统之间的差异,实现跨平台
3、简单高效
5、第一个程序
文件名:HelloWorld.java
package mypack; //package是关键字,在这代表一个目录,mypack是包名
public class HelloWorld //public也是关键字,代表这个类是公共的。class也是关键字,代表类。HelloWorld是类名。文件名要与公开的类名完全相同
{
public static void main(String[] args)
{
//public 与 static 的位置可以交换,其它的不可以换位也不可以省略,static是关键字,静态的意思,是全局的。
//void是返回类型,表示无返回值,main是方法名。
//String[]代表字符串数组,args代表数组名。
System.out.println("HelloWorld"); //System是系统,out是输出,println是换行打印
}
}
编译:javac -d . HelloWorld.java javac 文件名,-d是按照包结构生成.class文件,若目录不存在,会自动创建
解释:java mypack.HelloWorld java 类名
注意:一个源程序可以有多个类,一个类对应一个.class文件
如果一个源文件中有公开类,则源文件的文件名必须与公开类的类名完全同名(大小写也要相同)
一个源文件中至多只能有一个公开类
**6、包的概念:
文件多了用文件夹管理,类多了用包来管理,包和目录的结构一一对应
关键字package mypack; mypack是包名
编译时javac -d . HelloWorld.java -d是按照包结构生成.class文件,若目录不存在,会自动创建, .代表当前
运行时 java mypack.HelloWorld 注意:运行时要使当前目录在mypack的上一级,不能进入mypack目录下运行
常用的包:
java.lang 核心类都放在这个包里,例:System,Object
java.awt/javax.swing/java.awt.event GUI所用的类都在这几个包里
java.applet 动态网页所需要的包,被java script,ajax代替
java.io 输入、输出流所用的包
java.net 网络编程时所用的包
java.util 工具包(日期,集合...),除了lang包以外用的最多的包
java.sql 操作数据库的包
引入哪个包里的哪个类:关键字import
注意:
package
import
class
这三个顺序是不可改变的
习惯上:加包,加注释,换行,缩进
7、注释
单行注释:// 从双斜线开始到本行结束被注释掉
多行注释:/*
..... 在这个范围之内的都是注释
*/
一般为了美观这样写:/*
* comments
*/
若想在关键字中间使用注释可以使用多行注释
/**
.....
*/ 这个也是多行注释,但编译时会把这种注释抽出来放在html中做成帮助文档
有这种注释的程序在编译时要用:javadoc -d doc 源文件名
把生成的帮助文档放在doc目录下,生成的帮助文档就是doc目录下的index.html文件
这种注释在包前面,import前面,类前面,方法前面,属性前,构造器前才能被被抽取
8、标识符
只能包括字母,下划线,$ , 数字,但数字不能开头,区分大小写,关键字不能做标识符
一个汉字就是一个字母,汉字也可做标识符,但习惯上不用,而且尽可能回避中文
包名也是标识符
java的关键字都是小写字母,幻灯片44的关键字
关键字 strictfp 1.2添加
严格的浮点数
在类或方法前加上这个,表示精确的浮点数
assert 1.4添加的
enum 1.5添加的
goto , const 是保留字,java中不能使用
true , false,null 不是关键字,是预留字
命名规范习惯上:包名----------------- 全是小写字母
类名、接口名----------每个单词的首字母大写,其它的都是小写
变量名、方法名--------第一个单词都是小写,第二个单词及以后的每个单词首字母大写
常量------------------全大写,不同单词间用下划线隔开
9、变量
局部变量:在方法内定义的变量
(1)一定要先赋值后使用
(2)作用范围:从定义开始到定义它的代码块结束
(3)在重合范围不允许两个局部变量命名冲突
10、数据类型
一、基本类型(原始类型):8种
(1)与整型相关的:byte 1B -128~127 若byte i=128 超出范围就会报错
byte a=1;byte b=2; byte c=a+b; //error!!! 1默认为int类型。 因为a+b后自动把类型提升为int,
正确写法: 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,应为 float f=1.3f;
(3)布尔值: boolean 1B 字面值 true,false 意味着布尔值和整数不能转换 if(1) //error!!!!
(4)字符型:char 2B 采用16位unicode编码
char c='a'; char c=97;
char c='\u0061' -----unicode码值(16进制) 1个16进制表示2个字节, 即使是在注释里面用\u也要规矩的写四个数字,不能随便写
二、对象类型(引用类型)
字符串:String str="abc";
a+b 若有一方为字符串,则为字符串连接
"1"+2+3 结果是"123"
1+2+"3" 结果是"33"
类: 类是对象共性的抽象,是客观事物在人脑中的主观反映,类是对象的模板
对象:现实生活中一切客观存在的事物(万物皆对象)
成员:凡是写在类体括号内的都叫成员
11、基本类型和引用类型的内存分配
栈:后进先出,简单类型入栈,引用类型变量入栈(给以在堆空间的内容的首地址)
堆:引用类型内容放入堆空间。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -