经验技巧总结:多练,多问,自己调试,增加动手能力,复习,总结
guanjianz
标识符就是用于给 Java 程序中变量、类、方法等命名的符号。
使用标识符时,需要遵守几条规则:
-
标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符,不能以数字开头。譬如:123name 就是不合法滴
-
标识符不能是 Java 关键字和保留字( Java 预留的关键字,以后的升级版本中有可能作为关键字),但可以包含关键字和保留字。如:不可以使用 void 作为标识符,但是 Myvoid 可以
-
标识符是严格区分大小写的。
-
标识符的命名最好能反映出其作用,做到见名知意
变量类型 变量名=变量值(“变量值”);
如果我们把变量比作是酒店的房间,要存储的数据就好比要住宿的客人,我们可以根据客人的要求安排其入住“标准间”或者是“总统套房”,并且可以根据房间名字快速查找到入住客人的信息。同理,在 Java 程序中,我们也可以根据所需要保存的数据的格式,将其保存在指定类型的变量空间中,并且通过变量名快速定位!Java 中的标点符号是英文的。譬如语句结束的分号,是英文符号的分号
如果是String 赋值 是默认字符串,“+”代表连接;
如果是类似Integer 赋值 默认整型时候,“+”代表加号;
massion_特殊情况:如果是Integer a = 1; Integer b = 2; 那 “a”+b 输出结果是"a2"
在给变量起名字时,必须符合一定的规则:
1、变量名由多单词组成时,第一个单词的首字母小写,其后单词的首字母大写,俗称骆驼式命名法(也称驼峰命名法),如 myAge
2、变量命名时,尽量简短且能清楚的表达变量的作用,做到见名知意。如:定义变量名 stuName 保存“学生姓名”信息
java 变量名命名 首字母:字母、下划线、美元符号 首字母不允许是数字 其余部分可以是数字
数据类型
java 中变量名要先声明后使用。
变量使用时可以声明变量的同时进行初始化,也可以先声明后赋值。
变量中每次只能赋一个值,但可以多次修改。
main方法中定义的变量必须先赋值然后才能输出。
开发中不建议使用中文定义变量名,容易产生安全隐患
java自动类型转换
1. 目标类型能与源类型兼容如double型兼容 int 型,但是 char 型不能兼容 int 型
2. 目标类型大于源类型如 double 类型长度为8字节,int 类型为4字节,因此 double 类型的变量里直接可以存放 int 类型数据,反过来不可以
强制类型转换
语法:(数据类型)数值
强制类型转换数值上并未进行四舍五入,而是直接将小数位截断。可能会造成数据的丢失。
常量可以理解为一种特殊的变量,他在程序运行过程中是不允许改变的。
final String LOVE = “apple”;
常量名一般用大写字符
文档注释/** */
多行注释/* */
单行注释//
@author 标明开发该类模块的作者
@version 标明该类模块的版本
@see 参考转向,也就是相关主题
@param 对方法中某参数的说明
@return 对方法返回值的说明
@exception 对方法可能抛出的异常进行说明
常用的运算符:
算术运算符 如 + - * / % ++ –
赋值运算符 如 = += -= *= /= %=
比较运算符 如 > < >= <= == !=
逻辑运算符 如 && || ! ^
条件运算符( ? : )也称为 “三元运算符” 语法形式:布尔表达式? 表达式1:表达式2 运算过程:如果布尔表达式的值为 true ,则返回 表达式1 的值,否则返回 表达式2 的值
自增和自减运算符只能用于操作变量,不能直接用于操作数值或常量
前置++是将自身加1的值赋值给新变量,同时自身也加1;②后置++是将自身的值赋给新变量,然后才自身加1.
、 < 、 >= 、 <= 只支持左右两边操作数是数值类型 == 、 != 两边的操作数既可以是数值类型,也可以是引用类型
1、&&(与):要求所有人都投票同意,才能通过某议题
2、||(或):只要求一个人投票同意就可以通过某议题
3、!(非):某人原本投票同意,通过非运算符,可以使其投票无效
4、^(异或):有且只能有一个人投票同意,才可以通过某议题
当使用逻辑运算符时,我们会遇到一种很有趣的“短路”现象譬如:( one > two ) && ( one < three ) 中,如果能确定左边 one > two 运行结果为 false , 则系统就认为已经没有必要执行右侧的 one < three 啦。
同理,在( one > two ) || ( one < three ) 中,如果能确定左边表达式的运行结果为 true , 则系统也同样会认为已经没有必要再进行右侧的 one < three 的执行啦!
条件语句
如果 if 条件成立时的执行语句只有一条,是可以省略大括号滴!但如果执行语句有多条,那么大括号就是不可或缺
“需要先判断条件,条件满足后才执行的情况”,就可以使用 if 条件语句实现。
例:
if(条件){
条件成立时执行的代码
}
“当条件成立时执行某个代码,如果不成立则执行另一个”使用if……else。
例:if(条件的布尔表达式){
成立时执行的代码
}else{
不成立时执行的代码
}
“有多个条件时”使用多重if语句。
例:if(条件1){
满足条件1时执行的代码
}else if(条件2){
满足条件2时执行的代码
}else if(条件3){
满足条件3时执行的代码
}else{
以上条件都不满足时执行的代码
}
“大条件成立时才判断执行多个小条件”使用嵌套 if 语句。
例:
if(条件1){
if(条件2){
代码块1
}else{
代码块2
}
}else{
代码块3
}
“当需要对选项进行等值判断时”使用 switch 语句。
例:switch(表达式1){
case 值1:
满足值1时执行的代码
break;
case 值2:
满足值2时执行的代码
break;
case 值3:
满足值3时执行的代码
break;
default:
默认的代码
}
1、 switch 后面小括号中表达式的值必须是java 1.6(包括)以前,只是支持等价成int 基本类型的数据:byte ,short,char,int(其他的都不可以);整型或字符型、枚举型表达式,jkd1.7以后可以是字符串
2、 case 后面的值可以是常量数值,如 1、2;也可以是一个常量表达式,如 2+2 ;但不能是变量或带有变量的表达式,如 a * 2
3、 case 匹配后,执行匹配块里的程序代码,如果没有遇见 break 会继续执行下一个的 case 块的内容,直到遇到 break 语句或者 switch 语句块结束
4、 表达相同意思的case语句可以合并 例:
case 1:
case 2:
System.out.println(“奖励ipad 2一台”);
case语句按编写顺序执行,不按数字顺序执行;default 块可以出现在任意位置,优先执行case语句
Java 常用的 3 种循环: while 、 do…while 、 for
while循环
while(判断条件){
循环操作内容
}
执行过程:
<1>判断 while 后面的条件是否成立( true / false )
<2>当条件成立时,执行循环内的操作代码 ,然后重复执行< 1 >、< 2 >, 直到循环条件不成立为止
特点:先判断,后执行
do…while 循环
do{
循环操作
}while(判断条件);
执行过程:
<1>、 先执行一遍循环操作,然后判断循环条件是否成立
<2>、 如果条件成立,继续执行< 1 > 、< 2 >,直到循环条件不成立为止
特点: 先执行,后判断
由此可见,do…while 语句保证循环至少被执行一次!
for 循环。
for(循环变量初始化;循环条件;循环变量变化){
循环操作
}
执行过程:
<1>、 执行循环变量初始化部分,设置循环的初始状态,此部分在整个循环中只执行一次
<2>、 进行循环条件的判断,如果条件为 true ,则执行循环体内代码;如果为 false ,则直接退出循环
<3>、 执行循环变量变化部分,改变循环变量的值,以便进行下一次条件判断
<4>、 依次重新执行< 2 >、< 3 >、< 4 >,直到退出循环
特点:相比 while 和 do…while 语句结构更加简洁易读
附代码:
int sum = 0; // 保存不能被3整除的数之和
// 循环变量 i 初始值为 1 ,每执行一次对变量加 1,只要小于等于 100 就重复执行循环
for (int i = 1; i<=100 ; i++ ) {
// 变量 i 与 3 进行求模(取余),如果不等于 0 ,则表示不能被 3 整除
if (i % 3 != 0) {
sum = sum + i; // 累加求和
}
}
System.out.println(“1到100之间不能被3整除的数之和为:” + sum);
}
break和continue的区别:break是直接跳出循环,continue是跳过此次循环,循环仍进行。
附代码:
// 保存累加值
int sum = 0;
// 从1循环到10
for (int i = 1; i <= 10; i++) {
// 每次循环时累加求和
sum = sum + i;
// 判断累加值是否大于20,如果满足条件则退出循环
if ( sum>20 ) {
System.out.print(“当前的累加值为:” + sum);
break;//退出循环
}
}
int sum = 0; // 保存累加值
for (int i = 1; i <= 10; i++) {
// 如果i为奇数,结束本次循环,进行下一次循环
if (i%2!=0 ) {
continue;
}
sum = sum + i;
}
System.out.print(“1到10之间的所有偶数的和为:” + sum);
// 外层循环控制行数
for (int i = 1; i<=4;i++ ) {
// 内层循环控制每行的*号数
// 内层循环变量的最大值和外层循环变量的值相等
for (int j = 1; j<=i;j++ ) {
System.out.print(“*”);
}
判断一个数(小于10位)的位数。
输入999,则输出 “它是个3位的数!”
if (num >= 0 && num<=999999999){
while(num != 0){
count++;
num/=10;
}
System.out.println(“它是个”+ count+“位的数!”);
} else{
System.out.println(“输入有误!”);
}
// 变量保存成绩
int score = 53;
// 变量保存加分次数
int count = 0;
//打印输出加分前成绩
System.out.println(“加分前成绩:”+score);
// 只要成绩小于60,就循环执行加分操作,并统计加分次数
for(;score<60;score++,count++){
// count++;
if(score>=60){
break;
}
}
//打印输出加分后成绩,以及加分次数
System.out.println(“加分后成绩”+score);
System.out.println(“共加了”+count+“次!”);
记住:eslip软件 用快捷键方式可以省略一些长输入,
如:用 输入:syso+ alt键再加/ 就可以实现System.out.println(); 的输入
public static void main (String[] args) 的快捷键是main+alt+/
关于 Java 数组的 12 个最佳方法
1. 声明一个数组
String[] aArray = new String[5];
String[] bArray = {“a”,“b”,“c”, “d”, “e”};
String[] cArray = new String[]{“a”,“b”,“c”,“d”,“e”};
2. 输出一个数组
int[] intArray = { 1, 2, 3, 4, 5 };
String intArrayString = Arrays.toString(intArray);
// print directly will print reference value
System.out.println(intArray);
// [I@7150bd4d
System.out.println(intArrayString);
// [1, 2, 3, 4, 5]
3. 从一个数组创建数组列表
String[] stringArray = { “a”, “b”, “c”, “d”, “e” };
ArrayList arrayList = new ArrayList(Arrays.asList(stringArray));
System.out.println(arrayList);
// [a, b, c, d, e]
4. 检查一个数组是否包含某个值
String[] stringArray = { “a”, “b”, “c”, “d”, “e” };
boolean b = Arrays.asList(stringArray).contains(“a”);
System.out.println(b);
// true
5. 连接两个数组
int[] intArray = { 1, 2, 3, 4, 5 };
int[] intArray2 = { 6, 7, 8, 9, 10 };
// Apache Commons Lang library
int[] combinedIntArray = ArrayUtils.addAll(intArray, intArray2);
6. 声明一个内联数组(Array inline)
method(new String[]{“a”, “b”, “c”, “d”, “e”});
7. 把提供的数组元素放入一个字符串
// containing the provided list of elements
// Apache common lang
String j = StringUtils.join(new String[] { “a”, “b”, “c” }, ", ");
System.out.println(j);
// a, b, c
8. 将一个数组列表转换为数组
String[] stringArray = { “a”, “b”, “c”, “d”, “e” };
ArrayList arrayList = new ArrayList(Arrays.asList(stringArray));
String[] stringArr = new String[arrayList.size()];
arrayList.toArray(stringArr);
for (String s : stringArr)
System.out.println(s);
9. 将一个数组转换为集(set)
Set set = new HashSet(Arrays.asList(stringArray));
System.out.println(set);
//[d, e, b, c, a]
10. 逆向一个数组
int[] intArray = { 1, 2, 3, 4, 5 };
ArrayUtils.reverse(intArray);
System.out.println(Arrays.toString(intArray));
//[5, 4, 3, 2, 1]
11. 移除数组中的元素
int[] intArray = { 1, 2, 3, 4, 5 };
int[] removed = ArrayUtils.removeElement(intArray, 3);//create a new array
System.out.println(Arrays.toString(removed));
12. 将整数转换为字节数组
byte[] bytes = ByteBuffer.allocate(4).putInt(8).array();
for (byte t : bytes) {
System.out.format("0x%x ", t);
}
在详细说下上述内容:
1、声明数组
语法:数据类型[] 数组名;或者:数据类型 数组名[];
例:int(数据类型)[] scores(数组名);int(数据类型) scores(数组名)[]
声明数组的方法和生命变量的方法很像只是在数据类型或者数据名的后面加上了[]
2、分配空间
语法:数组名 = new 数据类型 [数组长度];
例:scores = new int [5];
简单地说,就是指定数组中最多可存储多少个元素.
3、赋值
分配空间后就可以向数组中放数据了,数组中元素都是通过下标来访问的
scores[0] = 89;
4、处理数组中数据
int[] scores = {1,2,3,4};(创建一个长度为4的整形数组)等价于int[] scores=new int[]{1,2,3,4}
数组名.length 用于获取数组的长度
// 定义一个整型数组,并赋初值
int[] nums = new int[] { 61, 23, 4, 74, 13, 148, 20 };
int max = nums[0]; // 假定最大值为数组中的第一个元素
int min = nums[0]; // 假定最小值为数组中的第一个元素
double sum = 0;// 累加值
double avg = 0;// 平均值
for (int i = 0; i < nums.length; i++) { // 循环遍历数组中的元素
// 如果当前值大于max,则替换max的值
if(nums[i]>max)
{
max=nums[i];
}
// 如果当前值小于min,则替换min的值
if(nums[i]<min)
{
min=nums[i];
}
// 累加求和
sum=sum+nums[i];
}
avg=sum/nums.length;
// 求平均值
System.out.println(“数组中的最大值:” + max);
System.out.println(“数组中的最小值:” + min);
System.out.println(“数组中的平均值:” + avg);
}
语法: Arrays.sort(数组名);
可以使用 sort( ) 方法实现对数组的排序,只要将数组名放在 sort( ) 方法的括号中,就可以完成对该数组的排序(按升序排列)
语法: Arrays.toString(数组名);
可以使用 toString( ) 方法将一个数组转换成字符串,该方法按顺序把多个数组元素连接在一起,多个元素之间使用逗号和空格隔开
例如结果例子:输出数组nums中的元素:[25,7,126,53,14,86] [game, movie, sports]
使用 foreach 操作数组 foreach 并不是 Java 中的关键字,是 for 语句的特殊简化版本,在遍历数组、集合时, foreach 更简单便捷。
for(元素类型 元素变量(自定义的名称):遍历对象){
执行的代码
}
使用 foreach 操作数组的效果和for的效果时一样的但是代码简洁
二维数组:
(1)声明数组并分配空间:数据类型[][]=new 数据类型[行的个数][列的个数];
数组类型[][] 数组名;
数组名=new 数据类型[行的个数][列的个数];
(2)赋值:数组名[行的索引][列的索引]=值;
也可以声明数组的同时为其赋值:数据类型[][] 数组名={{123},{456}};
(3)处理数组:
需要了解的:在定义二维数组时也可以只指定行的个数,然后再为每一行分别指定列的个数。如果每行的列数不同,则创建的是不规则的二维数组
附代码:
// 定义两行三列的二维数组并赋值
String[][] names={{“tom”,“jack”,“mike”},{“zhangsan”,“lisi”,“wangwu”}};
最后
还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书+2021年最新大厂面试题。
一个数组转换成字符串,该方法按顺序把多个数组元素连接在一起,多个元素之间使用逗号和空格隔开
例如结果例子:输出数组nums中的元素:[25,7,126,53,14,86] [game, movie, sports]
使用 foreach 操作数组 foreach 并不是 Java 中的关键字,是 for 语句的特殊简化版本,在遍历数组、集合时, foreach 更简单便捷。
for(元素类型 元素变量(自定义的名称):遍历对象){
执行的代码
}
使用 foreach 操作数组的效果和for的效果时一样的但是代码简洁
二维数组:
(1)声明数组并分配空间:数据类型[][]=new 数据类型[行的个数][列的个数];
数组类型[][] 数组名;
数组名=new 数据类型[行的个数][列的个数];
(2)赋值:数组名[行的索引][列的索引]=值;
也可以声明数组的同时为其赋值:数据类型[][] 数组名={{123},{456}};
(3)处理数组:
需要了解的:在定义二维数组时也可以只指定行的个数,然后再为每一行分别指定列的个数。如果每行的列数不同,则创建的是不规则的二维数组
附代码:
// 定义两行三列的二维数组并赋值
String[][] names={{“tom”,“jack”,“mike”},{“zhangsan”,“lisi”,“wangwu”}};
最后
还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书+2021年最新大厂面试题。
[外链图片转存中…(img-QTSeKyzH-1714348592130)]