Java语法
1. 程序
为了让计算机执行某些 操作或解决某个 问题 而编写的一系列有序指令的集合
2. Java的技术平台
javaSE:开发桌面应用程序
JavaME:开发移动设备端的程序(Android取代)
javaEE:开发企业级的web程序
3.Java的特点
- 纯面向对象
- 简单
- 安全性
- 多线程
- 跨平台性(一次编写。到处运行,通过JVM实现)
- 健壮性
- 分布式
4.Java运行机制
特点:跨平台(JVM:Java虚拟机)
**JDK: Java开发工具包,里面包含jre和开发工具
JRE:Java运行环境,里面包含jvm和类库
JVM:Java虚拟机
也即
JDK=JRE+开发工具
JRE=JVM+类库**
5.Java开发时的细节问题
a.源文件注意事项
- 一个源文件可以有多个类存在,切记:运行时选择对应的类名
- 在1的基础上源文件里用public修饰的类必须和当前文件名一致! 如果该类没有public修饰,则可以不用和当前文件名一致
- 一个源文件中至多出现一个public修饰的类
b.语法注意事项
- 严格区分大小写
- 每一条命令以分号结尾 ; 或 } 结尾
- 括号成对出现 { }
- 所有的符号都是英文状态的
- 最好有缩进
c.Java转义字符
- \t:一个制表位,默认四个空格,一般用于对齐数据
- \n:换行符 (较常用,输出时),
- \ :一个反斜杠
- ":一个双引号 (String类型直接赋值时使用,等)
- ’:一个单引号 (char类型赋值时使用)
- \r:光标定位到当前行
6.java语法:变量
a.变量的理解
定义:内存中的一块数据存储空间
b.变量的三要素
-
数据类型
-
变量名
-
变量值
例子: int x =12;
c.变量的使用步骤
- 声明/定义变量
理解:相当于告诉计算机要开个空间
语法:
数据类型 变量名;
int x
- 变量的赋值
理解:将值存储到变量中
语法:
变量名 = 值 ;
x =13;
- 变量的使用
理解:将存到变量中的值拿出来去使用(打印、运算等
//控制台打印输出
System.out.println(变量名);
d.变量的特点
1. 变量保存在内存中,遵循内存的易失性的特点
3. 变量在 同一个类型 范围内,值可以变化
4. 变量必须先声明、赋值,然后再使用
5. 同一个作用范围内,不可以定义同名的变量
e.变量的命名规则
规则:
只能包含数字、字母、下划线和$符号。不能以数字开头、关键字、保留字
注: 标识符:即自己起名的地方都可以叫标识符,(类、方法、变量)
规范:
- 类命名:每个英文首字母大写
- 变量命名:第二个英文字母大写
7.Java的数据类型
a .分类
- 基本数据类型
整型 : int
浮点型 : float double
字符型 : char
布尔型:boolean - 引用数据类型
使用class(类)定义:String StringBuilder
使用interface(接口)定义:List
数组类型
注:字符型
特点:
- 底层存储时以二进制形式(整数形式)
- char类型的常量值可以是:
- 字符 char c =‘d’;
- 整型 char c2 =100;
- 十六进制的码值 char c3=\u000123 ;
b.数据类型
整型int :1212
字符型 char :只包含一个字符 注:(char c=‘ ’ 是错误的),用单引号
浮点型 double:3.1415926
字符串类型 String: 注:(string c=“” 正确),用双引号
+的作用 :
1、加法运算
当两个操作符都是数值型时,充当加法运算的作用
2、连接符
当至少一个操作数为字符串型时,充当连接符的作用
c.类型转换 强制类型转换:转换的过程强制发生
规则:
大 --> 小
语法:
类型 变量名=(类型)值;
特点:
1、遵循自动提升原则,表达式的结果类型 遵循操作数中最大的类型
2、强制符号只针对于最近的操作数有效,往往需要通过小括号提升优先级
d.String类型和基本类型的转换
-
基本 --> String
方式:通过拼接一个空字符串
示例:String s=i+""; -
String - -> 基本
(char除外)
方式:通过调用基本类型的包装类的parseXX方法
示例:
int i=Integer.parseInt(String);
- String --> char类型
方式:通过调用String类型的charAt(索引)方法,索引:位置号,从0开始
示例:char c=str.charAt(1);
8.算数运算符
- %求余:
计算公式:a%b 相当于a-(int)a/bb
例子:
10%(-3)即 10 - 10/(-3)(-3) = 10-(-3)(-3)=1
(-10.54)%3:即 (-10.54) -(-10)/33 = - 1.54
2、++ 、–
++在变量前面 :y=x++,先赋值 x 再加一
public static void main(String[] args) {
int i=5;
int j=i++;
System.out.println("j的值:"+j);
System.out.println("i的值:"+i);
}
++在变量后面 :y=++x, x 先加一再赋值给y
public static void main(String[] args) {
int i=5;
int j=++i;
System.out.println("j的值:"+j);
System.out.println("i的值:"+i);
}
9.逻辑运算符
&&:短路与 条件1为false,则条件2不会判断,效率高
**||:**短路或 条件1为true,则条件2不会判断,效率高
&:逻辑与:条件1和条件2都要满足true,才为true
|:逻辑或:条件1和条件2只要有满足true,即为true
10.三元运算符
a? b : c
解析:a为true,则输出b,反之输出c
键盘输入语句 Scanner类
步骤:
1、import java.util.Scanner;//导包
2、Scanner input =new Scanner(System.in); //创建对象
3、String name=input.nextLine();//输入字符串
===>input.nextInt();//输入整型
===>input.nextDouble();//输入浮点型
===>input.next().charAt(0);//输入字符型
11.流程控制结构 顺序结构
分支结构
if判断结构
if( ){
}else
{
}
switch-case 结构
switch(num){
case value :
//语句
break; //可选
case value :
//语句
break; //可选
//你可以有任意数量的case语句
default : //可选
//语句
}
注:
num变量可以是int、char、short、byte 、枚举
1、判断的变量或表达式的类型只能是int以及能自动转换为int的byte、short、char、枚举、String
2、dufault语法上可以省略,也可以放在case前面。但可能影响效果
java工具类Math
1、次方 : Math.pow(变量,次方数)
开方 : Math.sqrt(b)
public static void main(String[] args) {
double i=2;
int j=9;
System.out.println("i的3次方"+Math.pow(i,3));
System.out.println("开方:"+Math.sqrt(j));
}
注
1、== 可以用于比较两个基本类型或引用类型
① 如果比较基本类型,判断的是值(内容)是否相等
② 如果比较引用类型,判断的是地址是否相等 ----》比较引用类型的值:
引用类型变量.equals(另一个引用类型变量);
2 .打印随机数 :0~1的随机数 【0,1)
Math.random
使用公式:
a~b之间的整数【a,b】
(int)(Math.random()*(b-a+1)+a)
//若【10~99)
double n=Math.random*90;
//[10~100) 10~ 99.xxx
int n2=(int)(Math.random*90+10);