CRainyDay

Java的一些基本语法

关键字、标识符、变量、运算符

(流程控制、数组)后续

1.关键字&标识符

关键字: 被Java语言赋予了特殊含义, 用做专门用途的字符串(单词), 关键字全是小写的

保留字: 以后可能用来作为关键字

标识符: 凡是自己可以起名字的地方都叫标识符

命名规则:

  一定要遵守, 不遵守就会报编译的错误

由26个英文字母大小写,0-9, _或 $ 组成 数字不可以开头.
不可以使用关键字和保留字, 但能包含关键字和保留字.
Java中严格区分大小写, 长度无限制.
标识符不能包含空格.

命名规范:

  不遵守, 也不会出现编译的错误

包名: 多单词组成时所有字母都小写: xxxyyyzzz
类名、接口名: 多单词组成时, 所有单词的首字母大写: XxxYyyZzz
变量名、方法名: 多单词组成时, 第一个单词首字母小写, 第二个单词开始每个单词首字母大写: xxxYyyZzz
常量名: 所有字母都大写, 多单词时每个单词用下划线连接: XXX_YYY_ZZZ

2.变量

  1. Java中变量按照数据类型来分类: 基本数据类型 vs 引用数据类型(数组 类 接口)

基本数据类型

整型: byte(8 bit,-128~127) short(-32768~32767) int(默认类型,-2^31~2^31-1) long

浮点型: float double(默认类型)

字符型: char(‘ ’)16 bit 是以十六进制保存的字符,例:char ch = ‘\u0041’;为’A’

布尔类型: boolean (只能取值为true 或false, 不能取null)

引用数据类型

String类型: 值可以为null

数组、对象(类的实例)等,之后会一一说明.

数据类型 变量名 = 初始化值;
​ 补充: 按照在类中存在的位置的不同: 成员变量 vs 局部变量
​ 成员变量在声明时会被默认初始化, 因此可以在声明后直接使用, 而局部变量在使用之前必须先初始化
​ 声明: long型常量需后缀”l”或”L”,long lo = 123L;
​ float类型变量要后缀”f”或”F”,float f = 12.3F;

2.进制(了解)
十进制 二进制 八进制 十六进制

二进制: 计算机底层都是用二进制来存储、运算.

二进制 与十进制之间的转换.
二进制在底层存储: 正数、负数都是以补码的形式存储的.(原码、反码、补码)
四种进制间的转换

3.变量的运算:
自动类型转换: 容量小的数据类型自动转换为容量大的数据类型转换.
short s = 12;
int i = s + 2;
注意: byte short char之间做运算, 结果为int型!
强制类型转换: 是①的逆过程.使用“()”实现强转.

3.运算符

运算符是一种特殊的符号, 用以表示数据的运算.

A.算术运算符:

1
+ - /  % ++ -- +

注意:

1) /: int i = 12; i = i / 5;地板除
2) %: 取模, 结果的符号与被模数相同
3) 前++: 先+1, 后运算 后++: 先运算, 后+1
4) +: String字符串与其他数据类型只能做连接运算, 且结果为String类型.

1
2
sysout("*" + '\t' + '*'); vs sysout('*' + '\t' + '*');结果为93
//sysout为Java的快捷键用法, 先输入sysout, 再按"Alt + /", 即可打出System.out.println();

B.赋值运算符:

1
2
3
4
5
6
7
8
9
//=    +=   -=  *=    /=   %=
int i = 12;
i = i * 5;
i *= 5;//与上一行代码同样的意思
//[特别地]
short s = 10;
s = s + 5;//报编译的异常,s+5会被默认转化为int类型,再赋值给short会出错
s = (short)(s + 5);//强制类型转换便不会异常
s += 5;//相当于, s = s + 5, 但两者并不完全等价, 但是结果不会改变s的数据类型.

C.比较运算符(关系运算符)

1
==  >   <  >=   <=    instanceof

[注意] 区分 == 与 = 区别.
进行比较运算操作以后,返回一个boolean类型的值(true或false)
4>=3 表达的是4 > 3或者 4 = 3.结果是true.

if(i > 1 && i < 10){ } 不能写为: if(1 < i < 10){}

D.逻辑运算符(运算符的两端是boolean值)

1
&  &&  |  ||  ^  !

[注意]区分&与&&的区别, 以及 | 与 || 的区别
我们使用的时候, 选择 && , || 短路与、短路或

E.位运算符(两端是数值类型的数据)

1
<<   >>    >>>(无符号右移)  &  |   ^(异或)  ~(按位取反)

[例子] 1.如何交换m = 12和n = 5的值
2.将60转换为十六进制输出.

F.三元运算符

(条件表达式) ? 表达式1 : 表达式2;

1) 既然是运算符, 一定会返回一个结果, 并且结果的数据类型与表达式1, 2的类型一致
2) 表达式1与表达式2的数据类型一致.
3) 使用三元运算符的, 一定可以转换为if-else. 反之不一定成立.
4) ?: 可以嵌套使用

例子: 获取两个数的较大值; 获取三个数的最大值.

点击显/隐内容
1
2
3
4
int i = 0, j = 1;
int max = (i > j) ? i : j;
int k = 2;
int max2 = (i > j) ? ((i > k) ? i : k) : (( j > k) ? j : k);

 评论



本博客所有文章除特别声明外,均采用[(CC BY-NC-SA 4.0)]许可协议。转载请注明出处!

本站使用 Material X 作为主题 , 总访问量为 次 。
Copyright © 2019 CRainyDay's Blog 版权所有