Java基础(2)
2021/7/7 22:39:52
本文主要是介绍Java基础(2),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
关键字和保留字
关键字
保留字
标识符
命名规则
命名规范
变量
变量的类型:
基本数据类型
引用数据类型
基本数据类型之间的运算规则
强制类型转换
注意的点
字符串类型 String
练习
进制与进制之间的转换(了解)
运算符
包机制
关键字和保留字
关键字
被Java语言赋予了特殊含义,用做专门用途的字符串
特点:关键字所有字母都为小写
保留字
现有Java版本尚未使用,但以后版本可能作为关键字使用。
goto、const
标识符
对各种变量、方法和类等要素命名时使用的字符序列称为标识符。
命名规则
- 由26个英文字母大小写,0-9,_或$组成
- 数字不可以开头。
- 不可以使用关键字和保留字,但能包含关键字和保留字
- Java中严格区分大小写,长度无限制。
- 标识符不能包含空格。
命名规范
- 包名:多单词组成时所有字母都小写:xxxyyyzzz
- 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
- 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:XxxYyyZzz
- 常量名:所有字母都大写。多单词时每个单词用下划线连接: XXX_YYY_ZZZ
变量
- 数据类型 变量名 = 变量值;
class VarTest{ public static void main(String[] args){ int myAge = 10; //变量类型 变量名 = 变量值 System.out.println(myAge); } }
- 变量是程序中最基本的存储单元,包含变量类型,变量名和存储的值
- 先声明,后使用
- 变量的作用域:全局变量 or 局部变量;对应的作用域命名不能重复
变量的类型:
按照数据类型:
基本数据类型
- 数值型:整数类型(byte 1字节= 8bit 范围:-128~127、short 2字节、int 4字节、long 8节,声明long时,必须以“l”或“L”结尾)、浮点类型(float 4字节声明float时,必须以“f”或“F”结尾,double 8字节 通常使用double)
long l1 = 23444444L;
- 字符型 char 1字符 = 2字节
char c1 = 'a'; //1 只能写一个字符 char c2 = '\n'; //2 转义字符 char c3 = '\u0043';//3 直接使用Unicode值来表示字符型常量
- 布尔型 boolean true/false
引用数据类型
- 类 class 包括字符串
- 接口 interface
- 数组 array []
基本数据类型之间的运算规则
只讨论前七种类型,不含Boolean类型
自动类型提升:进行运算时,容量(数的范围大小,并非占用的内存大小)小的会转成大的
byte、char、short ---> int ---> long ---> float ---> double
特别的,当byte、char、short做运算时,结果为int类型
class VarTest{ public static void(String[] args){ byte b1 = 2; int i1 = 129; //编译不通过 byte b2 = b1 + i1; int i2 = b1 + i1; System.out.println(i2); } }
强制类型转换
需要使用强转符:()
注意:可能导致精度损失
class VarTest{ public static void main(String[] args){ double d1 = 12.3; int i1 = (int)d1;//截断操作 System.out.println(i1); } }
注意的点
- 使用long是结尾没加“L”,结果还是能输出,为什么? 答:此时会按照int来执行,如变量值未超过int范围,则不会报错,否则,会报错。 但float如果不加“F”,就会报错。
- 整型常量,默认是int型;浮点型常量,默认是double型
字符串类型 String
String 是引用数据类型
声明时,使用 双引号 " "
String可以和8中基本数据类型做运算,但只能是连接运算。运算结果仍是String类型
String str = "hello world";//长度没有限制 String str = ""; //也可以为空 int number = 1008; String numberStr = "学号"; String info = numberStr + number; System.out.println(info);
练习
1、
char c = 'a'; int num = 10; String str = "hello"; System.out.println(c + num + str); //107hello System.out.println(c + str + num); //ahello10 System.out.println(c + (num + str)); //a10hello System.out.println((c + num) + str); //107hello System.out.println((str + num) + c); //hello10a
2、 注意单引号和双引号的区别
//输出 * * System.out.println("* *"); //* * System.out.println('*' + '\t' + '*'); //93* System.out.println('*' + "\t" + '*'); //* * System.out.println('*' + '\t' + "*"); //51* System.out.println('*' + ('\t' + "*")); //* *
进制与进制之间的转换(了解)
- 二进制、0,1
- 十进制、0-9
- 八进制、0-7
- 十六进制 0-9及A-F, a-f不区分大小写
原码、反码、补码。计算机底层都以补码的方式来存储数据。
public class Demo1 { public static void main(String[] args) { //进制 二进制0b 十进制 八进制0 十六进制0x int i = 10; int i2 = 010; int i3 = 0x10;//十六进制 System.out.println(i + " " + i2 + " " + i3); System.out.println("==============="); //强制类型转换 char c1 = 'a'; char c2 = '红'; System.out.println(c1); System.out.println(c2); System.out.println((int)c1); System.out.println((int)c2); //Unicode编码 char c3 = '\u0061'; System.out.println('\n' + "C3:" + c3); //转义字符 // \t制表符 // \n 换行符 System.out.println("==============="); String stra = new String("hello world"); String strb = new String("hello world"); String strc = "hello world"; String strd = "hello world"; System.out.println(stra == strb); //false System.out.println(strc == strd); //true //boolean boolean flag = true; if(flag){ } //老手 if(flag == true){} //新手 } }
运算符
package Base.operator; public class Demo1 { public static void main(String[] args) { /* 算数运算符 赋值运算符 关系运算符 逻辑运算符 位运算符 条件运算符 扩展赋值运算符 */ //二元运算符 int a = 10; int b = 10; int c = 10; int d = 100; System.out.println(a + b); System.out.println(a - b); System.out.println(c - d); System.out.println((double) c / d); //关系运算符 int a1 = 10; int b1 = 3; //取余运算 System.out.println("取余:" + a1 % b1); System.out.println("=====\n关系运算符,只返回Boolean类型"); System.out.println(a1 == b1); System.out.println(a1 >= b1); System.out.println(a1 < b1); System.out.println(a1 != b1); //自增 ++ 自减 -- int num = 7; System.out.println("初始num: " + num); int b3 = num++; //先赋值,后自增 System.out.println("执行num++: " + b3); num = 7; System.out.println("初始num: " + num); int c3 = ++num; //先自增,后赋值 System.out.println("执行++num: " + c3); //幂运算 double pow = Math.pow(2 , 3); //2的3次方 System.out.println(pow); //逻辑运算符 //与 或 非 boolean bool1 = true; boolean bool2 = false; System.out.println("bool1 && bool2: " + (bool1 && bool2)); //同真则真 System.out.println("bool1 && bool2: " + (bool1 || bool2)); //一真则真 System.out.println("bool1 && bool2: " + !(bool1 && bool2)); //如果是真,则变为假;为假,则变为真。 //短路运算 int c4 = 5; boolean d4 = (c < 4) && (c++ < 4); //判断第一个括号之后,为假,不在执行后面的运算 System.out.println("d4: " + d4); //false System.out.println("c4: " + c4); //5 //位运算 /* A = 0001 1110 B = 0101 0101 A&B、A|B、A^B、~B(取反) << 左移 相当于 *2 2<<3 相当于 2*2*2*2,乘了3个2 >> 右移 /2 */ System.out.println(2<<3); //16 //条件运算符 //x ? y : z //如果x为true,则结果为 y,否则为 z a = 100; String str = a > 90 ? "true" : "false" ; System.out.println(str); //true //字符串连接符 a = 111; b = 222; System.out.println("" + a + b); //111222 } }
包机制
- 作用:如同文件夹
- 一般利用公司域名倒置作为包名 例如www.AAAA.com,第一个包可以叫com,第二个叫AAAA
- 为了能使用某一个包的成员,我们需要在Java程序中明确导入该包。使用import语句即可完成此功能
这篇关于Java基础(2)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南