Java基本语法
强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后使用
2.1 关键字
关键字的定义和特点
- 定义:被Java语言赋予了特殊含义,用做专门用途的字符串
- 特点:关键字中所有字母都为小写
保留字
Java保留字:现有Java版本尚未使用的,但以后版本可嫩会作为关键字使用。自己命名标记符时要避免使用这些保留字
byValue、cast、future、 generic、 inner、 operator、 outer、 rest、 var 、 goto 、const
2.2 标识符
标识符
Java对各种变量、方法和类等要素命名时使用的字符序列称为标识符
定义规则 尽量见名知意
- 由数字、字母、_和$组成
- 数字不可以开头
- 不可以使用关键字和保留字,但可以包含关键字和保留字
- Java中严格区分大小写,长度无限制
Java中的名称命名规范
- 包名:多个单词组成全是小写:aaabbbccc
- 类名、接口名:多单词组成是,所有单词的首字母大写(大驼峰):AaaBbbCcc
- 变量名、方法名:多单次组成是,第一个单词首字母小写,第二份单词开始首字母大写(小驼峰):aaaBbbCcc
- 常量名:所有字母都大写,多单词就加下划线:AAA_BBB_CCC
2.3 变量
概念 变量是通过变量名来访问这块区域的
- 内存中的一个存储区域
- 该区域有自己的名称(变量名)和类型(数据类型)
- Jav中每个变量必须先申明,后使用
- 该区域的数据可以在同一类型范围内不断变化
注意事项
- 变量的作用域:一次{…}之间有效
- 初始化值
定义格式
数据类型 变量名 = 初始化值;
变量的分类-按数据类型
- 对于每一种数据都定义了明确的具体类型,在内存中分配了不同大小的内存空间。
变量分类-按申明的位置不同
- 在方法体外,类体内声明的变量称为成员变量。
- 在方法体内部声明的变量称为局部变量。
public class test {
//实例变量
String name;
int age;
//类变量
static double salary = 2500;
//主方法
public static void main(String[] args) {
//变量类型 变量名 = new text()
test xxx = new test();
System.out.println(xxx.age);
System.out.println(xxx.name);
System.out.println(salary);
//类变量 static
}
}
二者在初始化方面的异同
- 相同:都有生命周期
- 不同:局部变量除形参,需要显式初始化
常量
final关键字
- 初始化后不能再改变的值,就是不会变动的值。
- 所谓常量可以理解成一种特殊的变量,他的值被设定后,在程序运行过程中不允许被改变。
static final double PI = 3.14;
整数类型:byte、short、int、long
- Java各整数类型有固定的表数范围和字段长度,不受具体OS的影响,以保证Java程序的可移植性。
- Java的整体常数默认为int型,声明long型常量须后加“l”或者“L”
int num1 = 10;//整形
byte num2 = 20;
short num3 = 30;
int money = 10_000_000;
long num4 = 30L;
float num5 = 50.1F;//浮点型
double num6 = 1237151.67461;
char name = '国';//字符
//字符串String不是关键字,类
String namea = "Settle";
boolean flag = false;//布尔类型
// boolean flag = true;
浮点类型:float、double 少用浮点数进行比较,浮点数是有限的,大约的 可以用BigDeciimal大数类
- 也有表数范围和字段长度,不受具体OS的影响。
- Java的浮点型常量默认为double型,声明float型常量,须后加“f”或者“F”。
- 浮点型常量有两种表达形式:
- 十进制数形式: 5.12 512.0f .512(必须有小数点)
- 科学计数法形式:5.12e2 512E2 100E-2
字符类型:char可以转换成数字
- char型数据用来表示通常意义上“字符”(2字节)
- 字符型常量的三种表现形式:
- 字符常量是用单引号‘ ’括起来的单个字符,涵盖世界上所有的书面字符。
例如:char C1 = ‘a’; char c2 =‘中’; char c3 = ‘9’;
2. Java中还允许使用转义字符‘/’来将其后的字符转变为特殊字符常量。
例如:char c3 = ‘\n’;
3. 直接使用Unicode值来表示字符型常量:‘\uXXXX’。其中,XXXX代表一个十六进制整数。.
例如:\u000a 表示 \n
- char类型是可以进行运算的。因为他们都有对应的Unicode吗。
布尔类型:boolean
- boolean类型适用于逻辑运算,一般用于程序流程控制:
if, while, do-while, for循环控制语句
- boolean类型数据只允许值为true和false,无null
不可以0和非0的整数替代false和true,这点和C语音不同。
字符串:String 类
- 值null可以赋给任何引用类型(类、接口、数组)的变量,用以表示这个引用类型变量中保存的地址为空。
- String类属于引用类,可以用null赋值。
- String类是一个典型的不可变类,String对象创建出来就不可能被改变。创建出的字符串将存放在数据区域,报障每个字符串常量只有一个,不会产生多个副本。
String s0 = “hello”;
String s1 = “hello”;
String s2 = “he” + “11” = “o”;
可得s0、s1、s2相等
基本数据类型转换:将容量小的数据类型转换成容量大的数据类型
int i = 128;
byte b = (byte)i;//内存类型转换
强制类型转换:将容量大的数据类型转换成容量小的数据类型
使用时要加上强制转换符(),但可能造成精度降低或者溢出
另外,boolean类型不可以转换成其他数据类型
2.4运算符
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等.
2.4.1算数运算符
算数运算符注意问题:
- 如果对负数取模,可以把模数负号忽略不计,如 5%-2 = 1 。但被模数是负数则不可忽略。此外,取模运算的结果不一定总是整数。
- 对于除号“/”,他的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。例如:int x = 3510; x = x/10001000;*
2.4.2赋值运算符
符号: =
- 当“=”两侧数据类型不一致时,可以使用自动类型转换原则进行处理。
- 支持连续赋值。
扩展:+=、-=、*=、/=、%=
2.4.3比较运算符
- 比较运算符的结果都是boolean型,要么true,要么false。
- 比较运算符“==”和“=”完全不一样
2.4.4 逻辑运算符
- 逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3&&x<6.
- “&”和“&&”的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
- “|”和“||”的区别同理,||表示:当左边为真,右边不参与运算。
- 在不需要逻辑运算两边都参与运算的时候,尽量使用&&和||
- 异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。
理解:异或,追求的是“异”!
2.4.5位运算符
有些算不了的可以用Math.
double pow = Math.pow(3, 2);
System.out.println(pow);//3*3=9
字符串连接
int a = 10;
int b = 10;
System.out.println(a+b+"");//20
System.out.println(""+a+b);//1010
2.4.6 三元运算符
格式:
(条件表达式)?表达式1:表达式2;
真1,假2
int score = 80;
String type = score < 60 ? "不及格":"及格";
System.out.println(type);
运算符优先级:
2.5 程序流程控制
2.5.1 顺序结构
Java中定义成员变量时采用合法的像前面引用。
如:
2.5.2 选择语句
2.5.2.1if-else语句
2.5.2.2 switch语句
规则:
- switch(表达式)中表达式的返回值必须是下述几种类型之一:byte, short, char, int, 枚举,String
- case子句中的值必须是常量,且所有case子句中的值应该是不同的
- default子句是可任选的,当没有批配的case时,执行default
- break语句用来执行完一个case分支后使程序跳出switch语句块;如果没有break,程序会执行到switch结尾
switch和if语句的对比:
- 如果判断的具体数值不多,而且符合byte、short、int、char这四种类型。虽然连个语句都可以使用,建议使用switch语句,因为效率稍高。
- 其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。
包机制
包的本质就是文件夹
- 公司域名倒置:
www.baidu.com >> com.baidu.www
语法格式:
package com.baidu.www//‘.’点可以分割子文件夹
import com.baidu.www//导入一个包用关键字import
*扩展:阿里巴巴开发手册*