1.Java语言的标识符:
标识符可以标识类名、接口名、变量名以及方法名。
1.1.Java标识符命名规则:
A.标识符是由数字,字母、下划线和美元符号构成,其他符号不可以
B.必须以字母(A-Z或音a-z),美元符(S)、或者下划线(_)开头
C.见名知意
D.驼峰命名法(首字母大写)例如:Person,CustomServices.
E.首字符之后可以是任何字符的组合
1.2.关键字不能用作标识符
在sm在开发java语言的时候定义的一些具有特殊含义的字符序列
Sun用了我们就不能用他作为标识符,我们只能其他的;
在java中关键字都是小写的
C语言和C+语言中有用到 goto, const在iava中叫保留字,我们不能使用
1.3.标识符是大小写是敏感的
合法标识符举例:age、$salary、_value、_1_value
非法标识举例:123bc、-salary
2.数据类型:
Java总共有两种数据类型,主要有基本类型和引用类型,基本类型有8种,引用数据类型有三种
①基本数据类型
数值类型:A :整数型(byte , short , int ,long)
B: 浮点型(float,double)
字符类型:(char)
布尔类型:(boolean, 只能取 true 和 false)
八种数据类型的取值范围:
在计算机内部,所有信息都采用二进制表示,每个二进制由0和1两种状态,一个字节有8位,也就是由8个0或1构成,如果sot类型的6在计算机中是如何存储的,shot是两个字节,那么hort6的二进制为:0000000010int类型的6在计算机中存储为32位:00 010
②引用数据类型:
数组,类,接口
public class DataType {
public staticvoidmain(String[] args){/*1.Java标识符命名规则:
A.标识符是由数字,字母、下划线和美元符号构成,其他符号不可以
B.必须以字母(A-Z或音a-z),美元符(S)、或者下划线(_)开头
C.见名知意
D.驼峰命名法(首字母大写)例如:Person,CustomServices.
E.首字符之后可以是任何字符的组合
2.关键字不能用作标识符
3.标识符是大小写是敏感的*/String userName= "寇了了";
String _array= "Array";
String _$phoneNum= "18367151969";//String 1UserName = "Tony";//错误写法,不能以数字开头
System.out.println("用户名为:" +userName);
System.out.println(_array);
System.out.println(_$phoneNum);/*输出结果为:
用户名为:寇了了
Array
18367151969*/}
}
3.进制换算:
十进制到二进制的换算规则:除2取余,逆序输出
如10进制6二进制换算方式为: 6/2=3 余0
3/2=1余1
1/2=0 余1
将余数逆序输出就是6的二进制表示:110,位数不够补零
二进制到十进制的换算规则:取出最后一位,从2的0次方开始乘,将得到的结果相加即可
如:二进制的110的十进制换算:
0*2的0次方=0
1*2的1次方=2
1*2的2次方=4
110的十进制为:0+2+4=6
字母:
’a’ ASCII 97
Char 97 16 位
4.Java修饰符:
像其他语言一样,Java可以使用修饰符来修饰类中方法和属性。主要有两类修饰符
可访问修饰符:default, public, protected, private
不可访问修饰符: final, abstract, strictfp
5.字符编码:
ASCI字符编码采用一个字节编码,主要针对英文编码
ISO-8859-1 又称 latin-1,是国际化标准或组织ISO制定的,主要为了西欧语言中的字符编码,和ASCⅡ兼容
GB2312/GBK/GB18030主要是汉字编码,三种编码从容量上看是包含关系
unicode Unicode统一了全世界上的所有文字编码, unicode有几种实现:UTF-8 UTF-16 UTF-32
UTF-8存储格式(UTF-8主要就是为了节省空间)
public class CharType {
public staticvoidmain(String[] argv){/*char类型
char是字符类型 java中采用 UNICODE编码 底层占两个字节
char类型涉及到字符编码方式
1.字符编码方式是现实世界中的文件和计算机的表示方式的转换规则
ASCII
'a' 97
'A' 65
'0' 48
对应的二进制是多少
IOS-8859-1
GB2312 < GBK < GB18030 从容量上看,是包含关系
unicode utf-8, uft-16 ,utf-32
2.如果字符采用的编码和解码不一致的时候,就会出现乱码*/
char i = 'a';int j = '7';//char k = 'ab'; //错误写法
char m = '中';char t = 't';
System.out.println("i == " + i + " j == " + j + " m == " + m + " t == " +t);//斜线在Java语言中的转移功能,可以将普通t字符,转换成"制表符"
char b = '\t';//相当于电脑键盘的Tab键
System.out.println("b==" + b);//输出为一个制表符
System.out.println("My Name is Steven");//Java中一个普通的"单引号"字符
char k = '\'';
System.out.println("k == " +k);//Java中一个普通的"斜线"字符
char l = '\\';
System.out.println("l == " +l);//Java中一个普通的"双引号"字符
char n = '\"';
System.out.println("n == " +n);//Java中一个普通的换行符
char o = '\n';//相当于键盘回车键
System.out.println("StevenA");//System.out.println(o);
System.out.println("");//print 不换行,println换行
System.out.println("StevenB");/*输出结果为:
i == a j == 55 m == 中 t == t
b==
My Name is Steven
k == '
l == \
n == "
StevenA
StevenB*/}
}
6.Java的变量
变量其实是java中的一个最基本的单元,也就是内存中的一块区域, Java中的变量有四个基本属性:变量名,数据类型,存储单元和变量值
◆变量名:合法的标识符
◆变量的数据类型:可以是基本类型和引用类型(必须包含类型)
◆存储单元:存储单元大小是由数据类型決定的,如:int为4个字节32位
◆变量值:在存储单元中放的就是变暈值(如果是基本类型放的就是具体值, 如果是引用类型放的是内存地址,如果null, 表示不指向任何对象
◆变量的声明格式:类型 变量名;
Java数组:
数组是储存在堆上的对象,可以保存多个同类型变量。在后面的章节中,我们将会学到如何声明、构造以及初始化一个数组
Java枚举:
Java 5.0引入了枚举,枚举限制变量只能是预先设定好的值。使用枚举可以减少代码中的bug.
例如,我们为果汁店设计一个程序,它将限制果汁为小杯、中杯、大杯。这就意味着它不允许顾客点除了这三种尺寸外的果汁。
classFreshJuice {
enumFreshJuiceSize{
SMALL,
MEDIUM,
LARGE
}
FreshJuiceSize size;
}
public classJavaEnum {
public static voidmain(String[] args) {
FreshJuice juice = newFreshJuice();
juice.size= FreshJuice.FreshJuiceSize.MEDIUM;
System.out.println("juiceSize == "+ juice.size);//juiceSize == MEDIUM
}
}
注意:枚举可以单独声明或者声明在类里面。方法、变量、构造函数也可以在枚举中定义。
Java关键字
public classJavaKeyWord {public static voidmain(String[] args) {/*//访问控制
private 私有的
protected 受保护的
public 公共的
//类、方法和变量修饰符
abstract 声明抽象
class 类
extends 扩展,继承
final 最终值,不可改变的
implements 实现(接口)
interface 接口
native 本地,原生方法(非Java实现)
new 新,创建
static 静态
strictfp 严格,精准
synchronized 线程,同步
transient 短暂
volatile 易失
//程序控制语句
break 跳出循环
case 定义一个值以供switch选择
continue 继续
default 默认
do 运行
else 否则
for 循环
if 如果
instanceof 实例
return 返回
switch 根据值选择执行
while 循环
//错误处理
assert 断言表达式是否为真
catch 捕捉异常
finally 有没有异常都执行
throw 抛出一个异常对象
throws 声明一个异常可能被抛出
try 捕获异常
//包相关
import 引入
package 包
//基本类型
boolean 布尔型
byte 字节型
char 字符型
double 双精度浮点
float 单精度浮点
int 整型
long 长整型
short 短整型
//变量引用
super 父类,超类
this 本类
void 无返回值
//保留关键字
goto 是关键字,但不能使用
const 是关键字,但不能使用
null 空*/}
}
//super关键字的作用:
// 调用父类的构造方法
// 调用父类的成员方法
// 需要注意: super只能应用在成员方法和构造方法中,不能应用在静态方法中(和this是样的),如果在构造方法中使用必须放在第一行
// 为什么会有 super关键字?
// 因为子类必须要调用父类的构造方法,先把父类构造完成,因为子类依赖于父类,没有父,也就没有子有时需要在子类中显示的调用父类的成员方法
//super 通过子类的构造方法调用父类的构造
//语法规则:个构造方法第一行如果没有this(,);也没有显示去调用 super();系统会默认调用 super();
//注意:super的调用必须放在构造方法的第一句 super和this不能共存
//使用 abstract定义抽象方法/如果一个类中含有抽象方法,那么这个类必须定义成抽象
// 如果类是一个抽象的,并不要求具有抽象的方法