java-基本语法

来源:互联网 发布:getting windows ready 编辑:程序博客网 时间:2024/06/08 14:39

即便是不同种类语言,它的基本语法都大同小异.

关键字

被java赋予了特殊了语义,用来做专门的用途的单词.
关键字中所有字母都是小写.

比如:

关键字

关键字

保留字

当前版本尚未有何特殊含义.未来可能作为关键字.

// 比如cast var const outer 

标识符

凡是自己可以起名字的地方都可以叫做标识符.
如: 变量,方法,类.

标识符的定义规则:

  • 大小写字母,0-9,_或者$
  • 数字不可以开头
  • 不可以使用关键字和保留字,但是可以包含关键字与保留字
  • 严格区分大小写,无长度限制
  • 标识符不可以包含空格
  • 尽量起名语义化

java的基本命名规范

包名: 多单词组成时候所有字母都小写
类名/接口名: 多单词组成时候,首字母大写
变量名/方法名: 多单词组成时候,首字母小写,后面每个词首字母大写
常量名: 所有字母都大写.多单词组成时候,通过”_”连接

变量

变量类型 变量名 = 初始化值

概念与注意事项:

变量可以理解为内存中的一块存储区域,这个区域有自己的名字(变量名),类型(变量类型),该区域的数据可以在该类型内自由变化(再赋值).

java中的变量必须先声明后使用.这与javascript不同.

变量的分类

  1. 按照数据类型分类

变量的分类

  • 整数类型(byte,short ,int,long)

注意:java中整数默认为int.声明long类型,需要加后缀”L”或者”l”

整型

  • 浮点类型 (float , double)

java浮点数类型默认为double,声明float类型变量时候需要加后缀”f”或者”F”.

浮点数类型

浮点数类型常量的表示方法:
- 十进制数形式 1.2 1.2f
- 科学计数法 5.12e2 5.12e-2

  • 字符类型(char)

char类型: 2字节.
字符型常量的表现方法:
1. 字符常量: 通过单引号”括起来的单个字符. char a = ‘文’
2. 通过转义字符’\’把字符转为特殊的字符常量.
3. 使用Unicode值来表示字符常量. ‘\uxxx’

常见的转义字符:

转义字符

char类型是可以直接进行运算的,因为他们有对应的unicode值.

扩展知识: ASCII 码

在计算机内部,所有数据都是通过二进制来表示,每一个二进制位(bit)都有0和1两种状态,因此8个二进制位就有256种状态.这也叫做一个字节(byte).一个字节256种状态可以对应256个不同符号。

美国在上个世纪60年代,对英语字符与二进制位之间的关系,做出了统一的规定,制定了一套字符编码.就是ASCII 码 — 128个字符的编码.

缺点:
1. 局限性:不能表示所有字符
2. 不具备通用性: 相同的编码在不同国家表示的字符不一样.

扩展知识: Unicode编码

乱码: 因为世界上有很多种编码方式,相同的二进制数字可以被解释成不同的字符,因此我们打开一个文件,就需要知道其编码格式.如果使用错误的e/不匹配的编码格式打开就会产生乱码.

Unicode编码: 把世界上所有编码纳入其中,每个符合都有自己的独一无二的编码,所以使用Unicode编码没有乱码的出现.

缺点:
1. Unicode只规定了符号的二进制代码,却没有制定如何进行存储.无法区分Unicode与ASCII。
2. 计算机无法区分三个字节是表示一个符合还是三个符合

扩展知识: UTF8

UTF8是如今使用最广泛的一种Unicode编码实现方式
UTF8根据不同符合变化字节长度

  • 布尔类型

boolean类型: 逻辑运算,流程控制语句.
boolean类型取值: true/false

2.按照声明的位置不同来分类

按照声明位置分类

成员变量与局部变量区别:

  • 定义的位置不同
- 成员变量定义在类里面方法外面,可以在整个类中被访问- 局部变量只定义在局部范围内(方法内,代码块内) 
  • 内存中保存的位置不同
- 成员变量:分为类成员变量,实例成员变量(保存在对象所在的堆内存中)- 局部变量: 保存在栈内存中
  • 作用范围不一样
- 成员变量: 作用整个类- 局部变量: 作用范围结束,变量空间自动释放
  • 初始化不一样
- 成员变量: 有默认初始化值- 局部变量: 没有默认初始化值.每次必须显示初始化
  • 权限修饰符
- 成员变量: 根据实际需要,任意选择- 局部变量: 不指定权限修饰符

基本数据类型转换

  • 自动类型转换

概念: 容量小的数据类型自动向容量大的数据类型转换.

自动类型转换

数据类型混合时候运算规则:

- 首先把所有数据类型转换为容量最大的那个数据类型,再进行其他运算.- byte/short/char之间不会进行相互转换.他们在进行运算时候统一转为int类型- 任何基本数据类型的值与字符串进行连接运算"+",基本类型的值都会转为字符串.
  • 强制类型转换

概念: 自动类型转换的逆过程,把容量大的数据类型转为容量小的数据类型.语法格式:()–> 强制转换符.可能造成精度降低或者溢出.

正常情况下字符串不可以转为基本数据类型.但是通过基本数据类型的包装类可以实现.

String类
典型的不可变类.String类型对象创建出来后就不可以再变化.

String  str = "43";int i = Integer.parseInt(str)

boolean类型不可以转换为其他数据类型.

进制

对于整数有四中表示方式:

  • 二进制: 0/1 满2进1 以0b/0B开头
  • 八进制: 0-7 满8进1 以0开头
  • 十进制: 0-9 满10进1
  • 十六进制: 0-9 A-F(不区分大小写) 满16进1 以0x/0X开头

理解原码/补码/反码:

这里写图片描述

// 所有的数字在计算机底层都是以二进制形式存在 // 计算机以补码的形式保存着所有的正数符号位: 0为正 1为负原码: 直接把一个数字转为二进制数反码: 原码的每个位取反(符号为除外)补码: 正数的补码/原码/反码都一样,负数的补码是在反码的基础上每个位+1. 

这里写图片描述

进制间的转换

  • 二进制与十进制的转换

二进制转十进制

十进制转二进制

  • 二进制转十六进制

这里写图片描述

这里写图片描述

运算符

- 算术运算符- 赋值运算符- 比较运算符(关系运算符)- 逻辑运算符- 位运算符- 三元运算符
  • 算术运算符

算术运算符

  • 赋值运算符
"=" : 两侧数据可以进行自动类型转换/强制类型转换 支持连续赋值"+=" "-=" "*=" "/=" "%="
  • 比较运算符

比较运算符

  • 逻辑运算符
&—逻辑与         | —逻辑或         !—逻辑非&& —短路与      || —短路或        ^ —逻辑异或 // 异或追求的是异

逻辑运算符

  • 位运算符

直接对二进制进行运算.

位运算符

这里写图片描述
与运算

与运算

或运算

或运算

异或运算

异或运算

  • 三元运算符
// 格式(条件表达式)?表达式1: 表达式2;

运算符的有限等级

这里写图片描述

流程控制语句

跟javascript语法基本一样。

  • if 条件判断
  • switch(case)

循环结构

  • for循环
  • while循环
  • do while循环
0 0
原创粉丝点击