一、Java简介
1、Java跨平台原理
在需要运行Java应用程序的操作系统上,安装一个与操作系统对应的java虚拟机(JVM Java Virtual Machine)即可。JVM能够保证java程序跨平台。
2、JRE和JDK
2.1 JRE(Java Runtime Environment)
JRE是java程序的运行时环境,包含JVM和运行时所需要的核心类库,只需要安装JRE,也可以保证java程序的跨平台
想要运行一个已有的Java程序,只需要安装JRE即可
2.2 JDK(Java Development Kit)
JDK是Java程序开发工具包,包含JRE和开发人员使用的工具
其中的开发工具包括编译工具(javac.exe)和运行工具(java.exe)
想要开发一个全新的Java程序,就必须安装jdk
2.3 JDK JRE JVM的关系
JDK包含了JRE和开发工具,JRE是运行环境,包含了JVM和核心类库
2.4 JDK的安装目录
目录名称说明
bin该路径下存放了JDK的各种工具命令,javac和java就放在这个目录
conf该路径下存放了JDK的相关配置
include该路径下存放了一些平台特定的头文件
jmods该路径下存放了JDK的各种模块
legal该路径下存放了JDK各模块的授权文档
lib该路径下存放了JDK工具的一些补充jar包
其余文件为说明性文档
二、第一个程序
1、常用DOS命令
操作说明
盘符名称:切换盘符; 例:E: 表示切换到E盘
dir查看当前路径下的内容
cd 目录名进入单级目录
cd ..回退到上一级目录
cd 目录1\目录2\...进入多及目录; 例: cd E:\xxx\xxx
cd \回退到盘符目录
cls清屏
exit退出命令提示符窗口
2、Hello World
2.1 Java程序开发运行流程
开发java程序需要三个步骤: 编写程序 编译程序 运行程序
2.2 程序编写
/*
Java程序中最基本的组成单位是类
类的定义格式:
public class 类名{
}
*/
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World");
}
}
2.3 程序编译
编译命令: javac + 文件名
三、基础语法
3.1 注释
(1) 单行注释
格式: // 注释信息
(2) 多行注释
格式: /* 注释信息 */
(3) 文档注释
格式: /** 注释信息 */
3.2 关键字
关键字的字母全部是小写
3.3 常量
常量类型说明示例
字符串常量双引号括起来的内容"hello world"
整数常量不带小数的数字123 , 666
小数常量带小数的数字3.14159
字符常量单引号括起来的内容'a','b','c'
布尔常量布尔值true或false
空常量一个特殊的值,空值值是:null(注意空常量不能直接输出)
3.4 数据类型
(1) 计算机的存储单元
计算机存储设备的最小信息单元叫"位(bit)",又称为比特位,通常用小写字母b表示
计算机中的最小存储单元叫做"字节(byte)",通常用大写字母B表示
字节是由连续的8个位组成
(2) 数据类型
java是强类型语言,对于每一种数据都给出了明确的数据类型,不同数据类型分配了不同的内存空间,表示的数据大小也是不一样的
(2-1)基本数据类型
数值型
整数(byteshortintlong)
浮点数(float double)
字符(char)
非数值型
布尔(boolean)
(2-2)引用数据类型
类( class )
接口( interface )
数组( [] )
(3) 数据类型的内存占用与取值范围
关键字内存占用(字节)取值范围
byte1-128~127
short2-32768~32767
int4-2的31次方~2的31次方-1
long8-2的63次方~2的63次方-1
float4负数:-3.402823E+38到-1.401298E-45
正数:1.401298E-45到3.402823E+38
double8负数:-1.797693E+308到-4.9000000E-324
正数:4.9000000E-324到1.797693+308
char20-65535
boolean1true/false
3.5 变量
格式: 数据类型 变量名 = 变量值;
变量使用的注意事项:
名字不能重复
变量未赋值不能使用
定义long类型变量时,为了防止整数过大,后面要加L
定义float类型变量时,为了防止类型不兼容,后面要加F
3.6 标识符
(1) 标识符定义规则
由数字字母下划线$组成
不能以数字开头
不能是关键字
区分大小写
(2) 常见的命名约定
(2-1) 小驼峰命名法:方法变量
约定1:标识符是一个单词时,首字母小写
约定2:标识符由多个单词组成时,第一个单词首字母小写,其他单词首字母大写
(2-2) 大驼峰命名法:类
约定1:标识符是一个单词的时候,首字母大写
约定2:标识符由多个单词组成时,每个单词的首字母大写
3.7 类型转换
(1) 自动类型转换
把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量
(2) 强制类型转换
把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量
格式: 目标数据类型 变量名 = (目标数据类型)值或者变量;
例: int k = (int) 8.88;
四、运算符
1、算数运算符
+-*/%
注:整数相除只能得到整数,要想得到小数,必须要有浮点数的参与
算术表达式中包含多个基本数据类型的值的时候,整个算数表达式的类型会自动进行提升
提升规则:
byte类型,short类型,和char类型将被提升到int类型
整个表达式的类型自动提升表达式中最高等级操作数相同的类型
等级顺序: byte,short,char --> int --> long --> float --> double
当 ' +' 操作中出现字符串时,这个 + 符号是字符串连接符,而不是算术运算
2、赋值运算符
=+=-=*=/=%=
3、自增自减运算符
| 符号 | 作用 | 说明 |
| :--: | :--: | :---------: |
| ++ | 自增 | 变量的值加1 |
| -- | 自减 | 变量的值减1 |
注意事项:
++和--单独使用时,无论在变量前还是在变量后,结果都是一样的
i++,则最后自增
++i,则先自增,再做相应的操作
4、关系运算符
==!=>>=<<=
关系运算符的结果都是boolean类型
5、逻辑运算符
| 符号 | 作用 | 说明 |
| :--: | :------: | :----------------------------------------------------------: |
| & | 逻辑与 | a&b,若a和b都是true,则结果为true |
| | | 逻辑或 | a|b,若a或b有一个为true,则结果为true |
| ^ | 逻辑异或 | a^b,若a和b结果不同为true,相同为false |
| ! | 逻辑非 | !a,结果和a相反 |
| && | 短路与 | 作用和&相同,但是有短路效果
如果左边为真,则右边执行,否则右边不执行 |
| || | 短路或 | 作用和|相同,但是有短路效果
如果左边为假,则右边执行,否则右边不执行 |
6、三目运算符
格式:关系表达式 ? 表达式 1 : 表达式2
首先计算关系表达式的值,如果值为true,则表达式1的值就是运算结果,否则运算结果为表达式2
注:三目运算符在编译时,要求表达式1与表达式2的类型要统一,如果不统一就需要自动类型转换
五、数据输入
1、 Scanner类使用的基本步骤
导包
//导包的动作必须出现在类定义的上面
import java.util.Scanner;
创建对象
//sc是变量名,可以改变,其他的不允许改变
Scanner sc = new Scanner(System.in);
接收数据
int i = sc.nextInt();
import java.util.Scanner;
public class ScannerDemo{
public static void main(String[] args){
//创建对象
Scanner sc = new Scanner(System.in);
//接收数据
Scanner sc = new Scanner(System.in);
//输出数据
System.out.println("x:" + x);
}
}