配置环境变量
方式1:复制jdk安装目录的bin目录的路径
计算机------>右键------->选择属性------>高级------>环境变量----->系统变量Path:将复制路径放到path环境变量的前面.
存在弊端:如果jdk版本升级需要更改Path,别的系统变量为了改变Path,会出现误删的情况.
方式2:=**(JAVA_HOME)**推荐使用
环境变量------>系统变量------->新建变量
变量名:JAVA_HOME
变量值:jdk版本的路径
Path环境变量中引入JAVA_HOME变量
%JAVA_HOME%\bin; (win7/win8 )
%JAVA_HOME%\bin (win10)
检验配置是否正确?
进入dos命令(不论在哪个盘符下)
windows+r-------->cmd------>输入javac/java 回车------>有提示信息说明配置完成!
关键字
关键字:被java赋予特殊含义的单词
组成关键字的单词:全部都是小写
class:定义一个类(Java中最基本的单元)
public:权限修饰符(公开的,公共的)
private:(私有的,外界不能直接访问的)
protected:(受保护的)
static:静态修饰符
void:跟方法有关系
注:goto和const,这两个单词不是关键字,作为保留字使用!
标识符
标识符:给类,接口,变量,方法起名字的序列
组成规则:
1)英文大小写字母
2)数字
3)$和下划线_
注:1.不能以数字开头
2.不能是java中的关键字
3.java是强类型语言,严格区分大小写
给类和接口命名:
单个单词:首字母大写
多个单词:每个单词首字母都大写(大驼峰命名法)
给变量和方法命名:
单个单词:全部小写
多个单词:第一个单词全部小写,从第二个单词开始首字母大写(小驼峰命名法)
给常量命名:
单个单词:每个字母都大写
多个单词:每个单词字母都大写,单词中间用下划线隔开
常量
常量:在程序执行过程中,其值不发生改变的量
分类:字面值常量和自定义常量
1)字面值常量
a)字符串常量:使用双引号括起来的内容
b)字符常量:使用单引号括起来的内容
c)整数常量
d)小数常量
e)布尔常量
f)空常量
2)自定义常量(跟final关键字有关)
进制
进制的组成规则:
二进制:由0,1组成,以0b开头
八进制:由0~7组成,以0开头
十进制:整数
十六进制:由0~9,a~f组成,以0x开头
其他进制转换为十进制:(位权展开法)
系数*基数的权次幂相加
十进制到其他进制:
除基取余,直到商为0,余数反转
有符号位的数据表示法
所有数据的运算都是采用补码进行的
原码:
二进制定点表示法,最高位为符号位,"0"为正,"1"为负,其余位表示数值的大小
反码:
正数的反码与原码相同;负数的反码是对其原码逐位取反,但符号位除外
补码:
整数的补码与原码相同;负数的补码是在其反码的末位加1
变量
变量:程序执行过程中,值发生改变的量
格式:
数据类型 变量名 = 初始化值
数据类型
基本数据类型:
1)整数类型
a)字节类型:byte
b)短整型:short
c)长整型:long
d)整数类型:int
2)浮点类型
a)单精度:float
b)双精度:double
3)字符类型:char
4)布尔类型:boolean
引用数据类型:数组,类,接口
强制类型转换
语法:
目标数据类型 变量名 = (目标数据类型) (变量值);
注:强制类型转换会损失数据精度!
运算符
算数运算符:
基本的算术运算符: +,-,*,/,%
扩展的算数运算符:++或者--
++或--
情况1:单独使用
无论操作符在前还是在后,都是对数据本身的值进行自增1或自减1
情况2:参与运算
1)++或--在数据前,数据先自增1或自减1,再进行运算
2)++或--在数据后,数据先进行运算,再自增1或者自减1
赋值运算符:
基本的赋值运算符: =
扩展的赋值运算符: +=,-=,*=,/=,%=
扩展的赋值运算符隐藏了强制类型转换
关系运算符
<,>,<=,>=,==,!=
使用关系运算符的表达式,结果都是boolean类型
逻辑运算符
基本的逻辑运算符:
逻辑单与&: 有flase,则false
逻辑单或!: 有true,则ture
逻辑异或^: 相同为false,不同为ture
逻辑非!: !true则false
扩展的逻辑运算符
逻辑双与&&
逻辑双或||
逻辑单&与逻辑双与&&的异同
相同点:都是并列关系
不同点:逻辑双与存在短路效果
位运算符:针对两个具体的数据进行运算
基本的位运算符
位与&: 有0则0
位或|: 有1则1
位异或^: 相同为0,不同为1
~反码: 按位取反
位异或的特点:一个数据被另外一个数据位异或两次,结果是它本身
移动符号
<<左移: 将最高符号位舍弃掉,在右边补齐0
>>右移: 如果最高符号位是0,在左边补齐0;
如果最高符号位是1,在左边补齐1
>>>无符号右移: 无论最高符号位是0还是1,都在左边补齐0
左移结论:
将该符号左边的数据乘以2的移动次幂
右移结论:
将该符号左边的数据除以2的移动次幂
三目运算符
格式:
(表达式) ? 执行true的结果 : 执行false的结果;
文本扫描器 Scanner类
基本使用:
1)导包
2)固定格式:创建一个文件扫描器对象
Scanner 对象名 = new Scanner(System.in);
3)友情提示:"请输入一个数据"
4)接收数据:
5)输出变量名
流程控制语句
if语句
格式1
if(条件表达式){
语句;
}
格式2
if(条件表达式){
语句1;
}else{
语句2;
}
格式3
if(条件表达式1{
语句1;
}else if{
语句2;
...
...
}else {
语句n+1;
}
if语句格式的嵌套
if(条件表达式1){
if(条件表达式2){
语句1;
}else{
语句2;
}
}else{
语句3;
}
switch语句
格式:
switch(表达式){
case 值1:
语句1;
break;
case 值2:
语句2;
bresk;
...
...
default:
语句n+1;
break;
}
for循环语句
格式
for(初始化语句;条件表达式;步长语句){
循环体语句;
}
while循环
格式1
while(条件表达式){
循环体语句;
步长语句;
}
格式2(扩展)
初始化语句;
while(条件表达式){
循环体语句;
步长语句;
}
三元运算符和if格式2的区别
三元运算符连接的是两个数据的数据值;
if格式范围要比三元运算符大,不仅可以判断数据值,还可以操作语句
switch后面的表达式可以是什么数据类型?
一般:byte,short,char,int
JDK5:枚举(enum)
JDK7:string
while循环和for循环的区别
两种循环格式不一样
1)从内存角度考虑:
while循环结束了,依然可以访问循环中的变量;
for循环结束了,不能访问变量,计较节省内存空间
2)应用场景
如果明确循环次数或者循环的范围,使用for循环;
如果不明确循环次数或者循环的范围,使用while循环