JAVA基础
一、java工具
JDK
java开发工具包,sun官方提供的Java下载安装包,份操作系统和版本
JRE
Java运行环境,下载安装JDK即可得到JRE,需要陪着环境变量
JVM
Java虚拟机,是java的核心功能的提供者,java程序必须运行在JVM中
GC
内存垃圾的回收机制,由JVM提供
IDE
集成开发环境,是大规模的商业开发工具,主流包括:
Eclipse/jbuildemmr/netbeans
API
应用接口程序,在java中特指sun官方类库的说明文档
二、Eclipse安装
JAVA_HOME
该环境变量的值就是Java所在的目录,一些Java版的软件和一些Java的工具(Eclipse/NetBeans/Tomcat)需要要到该变量,设置PATH和CLASSPATH的时候,也可以使用该变量以方便设置
PATH
1.作用是指定命令搜索路径,在shell下面执行命令是,它会到PATH变量所指定的路径中查找看是否能够找到相应的命令程序。我们需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如:javac/java/javadoc等,设置好PATH变量后,就可以在任何目录下执行javac/java/等工具了。
CLASSPATH: .
1.也制定一个路径列表,用于搜索Java编译或者运行时需要用到的类。在CLASSPATH列表中除了可以包含路径外,还可以包含.jar文件。Java查找类是会把这个jar文件当作一个目录进行查找。通常,我们需要把JDK安装路径下的jre\lib\rt,jar(Linux;jre/lib/rt,jar)包含在CLASSPATH中。
2.直接在CLASSPATH中添加当前路径:
3.rt.jar可以通过系统关系自动找到。
JAVA_HOME: jdk的安装目录
PATH: JDK安装目录下面的bin目录
三、java执行原理:
MyFirst.java----源文件,不能在jvm上面运行
|
javac MyFirst.java
|
MyFirst.class---字节码文件,jvm上面运行的都是字节码文件
|
java MyFirst,启动呈现,执行相应的代码
1.一个java文件中可以包含多个class对象,编译时候有几个class对象就生成几个字节码文件
2.一个java文件中只有一个public修饰的类名。
3..java文件编译以后,一个class对应一个class文件。
4.main函数是整个程序的执行入口,必须是静态公开的。
四、常见术语
Main方法:
Public static void main(String[] args){ }
//static静态的,void表示方法(任何方法都有返回值),main是方法名
JAVA命令执行所做的东西(要用到PATH的环境变量)
1. 启动jvm
2. 找到字节码文件,要用到CLASSPATH的环境变量
3. 装载该字节码文件(加载到内存中)
4. 找到主方法,main方法,执行代码:“ ”字符串值,例如:System.out.println()向控制台输出,括号里是输出的内容(不加ln代表不换行,+代表字符串的连接)。
类
类里面可以写方法main,可以写属性,一般来说类与类、方法与方法之间是并列的。
刚开始写代码时要注意代码的格式问题,有利于以后代码的维护及可观性。
对象:
Java中一切都是对象;类是对对象的抽象描述
例如:
属性与方法
Public class Person{
Intheight
Intsex
Intage
Public void talk(){System.out.println(“hello”);}//说话
Public void work()//工作
Package包
1. 作用,java程序很庞大的话会有很多类文件,为了分类存放,那么就把相同类型的类文件放在同一个包
2. 语法:
Package 包名
正文
3. 报名规范:
公司的URL,
项目的简称,
项目的模块(如:com.tarena,abs,model),
好处:保证包的唯一性
编译格式:
Javac –d. xxx.java
启动格式:
Java 包名.文件名
Package com.tarena.teach;
Public class MyFirst{
Publicstatic void main(String[] args){
String name=”GaoYu”;
Int age=27;
System.out.println(“My name is “+name);
System.out.println(“I’m “+age+” years old.”);
}
}
Javac –d . MyFirst.java
Java com.tarena.teach.MyFirst
Java中的注释
1. 单行注释://
2. 多行注释:/*
*
*/
3. 文档注释:/**
*
*/
支持javadoc命令
Java中 的基础包
Java.lang语言包
Java.awt/javax.swing/java.awt.event图形开发(GUI)包
Java.applet JAVA的applet小程序包
Java.io输入输出流包
Java.net网络包
Java.util工具包
小代码:
Public class Login{
Publicstatic void main(String[] args){
String name;//用户名
String password;//用户密码
Scanner s=newScanner(System.in);
System.out.println(“用户名:”);
Name=s.next();//通过获取控制台的输入信息初始化name值
System.out.println(“密码:”);
Password=s.next();//初始化密码
If (“pro”.equals(name)){
If (“1234” .equals(password)){
System.out.println(“欢迎登录!”);
}else{
System.out.println(“密码错误!”);
}
}else{
System.out.println(“用户名错误!”);
}
}
标识符
标识符的用于及要求
1. 用于命名类、方法、变量和包
2. 由字母、数字、“_”和符号组成
3. 只能以字母、“_”、“$”开头,不能以数字开头
4. 大小写敏感
5. 无长度限制,不能空格
6. 不能用JAVA的关键词和保留词
7.
关键词的注意点
1. 自己命名变量或者不能和关键词医院
2. True,false,null不是关键字,是字面值,同样不能把他作为名字
3. Goto和const是保留字,不用于java开发,也不能命名
4. 其他语言中的goto语句的用法是(无条件跳转)
5. Java中代替goto的是break loop,其中loop是标号,标记一个循环,break loop就是结束循环
6. Sizeof(C/C++中的关键字:求变量在内存中所占的字节数),但在Java中不需要(JVM)
良好的编码习惯
1. 类的首字母要大写,如果有多个单词,每个单词都要大写,比如HelloWorld
2. 接口命名与类同
3. 方法命名第一个单词小写,以后每个单词的首字母都大写,比如getName
4. 变量名的命名与方法同
5. 常量的字母都大写,单词与单词之间用“_”,比如DRIVER_NAME,PI =3.14
6. 包的名字都小写,如com.tarena.corejava.day01
数据类型
整型
Byte |
1字节 |
8位 |
-2^7 – 2^7-1 |
Short |
2 |
16 |
-2^15 – 2^15-1 |
Int |
4 |
32 |
-2^31 – 2^31-1 |
Long |
8 |
64 |
-2^63 –2^63-1 |
浮点型
Float 4字节 32位
Double 8字节 64位
字符型
Char 2字节 16位(”A”:65,”a”:97,”o”:48)0-65535
布尔型
Boolean :true/false
其他类型
引用类型(地址(引用)---内存(对象)):类、接口、数组、枚举、标注等
类型的转换
除布尔型其他类型都可以转换
1. 自动转换
1.1表数值范围内可以自动转换
1.2表数范围小的可以转换为范围大的
1.3封装类与基本类之间可以转换
1.4子类与父类也可以转换
1.5byte-short-int-long-float-double
2. 强制类型转换
其他情况可以使用强制转换,如byteb=(byte)128
变量的定义
方法:类型+变量名[ = 值]
例如:int a=5,a可变,5是常数
Int a//声明
a=5//初始化
隐式转换
A运算符b
如果a,b中任意一个是double型,运算结果就是double型
如果a,b中任意一个是float型,运算结果就是float型
如果a,b中任意一个是long型,运算结果就是long型
如果a,b中没有double,float,long型,前面运算的结果就是int型
例如:
Byte a=3;
a=a+5;//会报错,5是int型,不能自动转换为byte型
a+=5;//不会报错,自动转换
运算符
1. 赋值运算符
=,+=,*=,-=
2. 关系运算符
>,>=,==,!=
注意:
boolean型不能用于比较大小
equals主要比较对象的地址(即引用中存储的内容)
浮点型数据不能通过运算符比较
3. 三目运算符
? :
如果条件为真,则执行?与:之间的
如果条件为假,则执行:之后的
例如:
Double c=a>b?1:2.0
a=8,b=7,则结果为c=1.0
a=8,b=7,则结果为c=2.0