4.变量与常量
=======
4.1 声明变量
格式:数据类型 变量名 例:
int age;
double salary;
long earthPopulation;
boolean done;
从中可以看出,每个声明都以分号结束。声明是一条完整的语句,分号在这里是必须加的。
tip:$是一个合法的Java字符,但是不要在代码中使用这个字符,它只在Java编译器或其他工具生成的名字中。
可以在一行中声明多个变量:
int i ,j, k; //不提倡这种风格
逐一声明每个变量提高代码的可读性。
4.2 变量初始化
声明一个变量后必须使用赋值语句对变量进行显式初始化。不能使用未初始化的变量。
否则:
public static void main(String[] args) {
int i;
System.out.println(i);
}
这段代码会出现如下错误:
要想对一个声明过的变量赋值就得把变量名放在 = 左边,值或者表达式放在 = 右边,例:
int age;
age = 10000;
int month;
month = 8;
int week = 6;
**tip:**在Java中,变量声明尽量靠近第一次使用的地方,这是一个比较好的编程习惯
4.3 常量
在Java中,利用关键字指示常量,例如:
public static void main(String[] args) {
final double P_I_E = 3.14;
System.out.println(P_I_E);
}
tip : final表示的这个变量只能被赋值一次,一旦被赋值便不能再更改,习惯上,常量名全大写。
还有一种常量被称为类常量,这个常量可以在一个类的多个方法中使用,可以使用 static final 设置一个类常量,例如:
static final double P_I_E = 3.14;
public static void main(String[] args) {
System.out.println(P_I_E);
}
**注意:**类常量定义于类方法的外部。
5.运算符
=====
运算符用于连接值
5.1 算术运算符
+ - * / 分别表示加 减 乘 除运算。
整数的取余操作符用 % 表示。例:15 % 7 == 1
当参与 / 运算的两个操作数都是整数,表示整数除法,否则表示浮点除法。
例:15 / 2 ==7 ;15 / 2.0 == 7.5
5.2 数学函数与常量
在Math类中包含了各种各样的数学函数,使用前加上这样一句代码:
import static java.lang.Math.*;
sqrt :计算一个数的平方根 ,例:
import static java.lang.Math.*;
public class OneBlogs {
public static void main(String[] args) {
double a = 25;
double b = sqrt(a);
System.out.println(b);
}
}
Math类中的sqrt方法不处理任何对象,这样的方法称为静态方法。
pow:表示幂运算 ,格式:pow(a , k)表示a的k次幂,例:
public static void main(String[] args) {
double a = 2;
double b = 3;
double c = pow(a,b);
System.out.println©;
}
Java还提供两个用于表示 π 和 e 常量最接近的近似值:Math.PI Math.E
5.3 数值类型之间的转换

图中有箭头实线表示无数据丢失的转换,无箭头的实线表示有数据丢失的转换
Java中,当使用一个二元运算符连接两个值时,会先将两个操作数转换成同一种类型,再计算。
**·**有一个操作数是double类型,另一个也会转换成double类型
**·**有一个操作数是float类型,另一个也会转换成float类型
**·**有一个操作数是long类型,另一个也会转换成long类型
**·**否则其余都将转换成int类型
5.4 强制类型转换
上面提到必要时,int会转换为double类型,Java中允许经过强制类型转换将double转换为int,例:
double a = 3.5678;
int b = (int) a;
这样经过上述代码 b的值为3,因为强制类型转换通过截断小数部分将浮点值转化为整型。
如果想对浮点数进行舍入运算,得到最接近的整数,就需要Math.round方法,例:
double a = 9.999;
int b = (int) Math.round(a);
**注意:**round方法的返回值为long类型,所以必须使用强制类型转换(int)。
5.5 结合赋值和运算符
+= -= *= /= %=
例:a+=2 等价于 a=a+2
如果运算得到一个值与左侧操作数类型不同,就会发生强制类型转换,例:
int a; //a是int类型
a+=2.2; //是合法的等价于(int)(a+2.2)
5.6 自增自减运算符
++ –
i++与++i的结果都会使i进行加1,但它俩的区别主要在给表达式赋值的地方体现,例:
int i = 1;
int a = ++i; //先进行++再给a赋值,所以a是2
int b = i++; //先赋值再进行++,所以b还是1
– 与 ++一样
5.7 逻辑运算符
逻辑与:&& 逻辑或:|| 逻辑非:! 这三个运算结果都是boolean类型,true或false
表达式1 && 表达式2,如果有一个表达式为假,结果就为假
表达式1 || 表达式2,如果有一个表达式为真,结果就为真
逻辑非!,假变真,真变假
5.8 位运算符
**按位与 &:**如果两个二进制位都是1,则结果为1,否则结果为0
| 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 |
| 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
**按位或 |:**如果两个二进制为都为0则结果为0,否则结果为1
**按位取反 ~:**如果该位为0则变为1,该位为1,则变为0
**按位异或 ^:**如果两个二进制位相同结果为0,不同为1
5.9 移位运算
**左移<<:**最左侧位不要了,右边补0
**右移>>:**最右侧位不要了,左边补符号位(正数补0,负数补1)
**无符号右移>>>:**最右侧位不要了,左侧补0
5.10 条件运算符
条件运算符也是Java中唯一一个三目运算符
表达式1?表达式2:表达式3 表达式1结果为真,则结果为表达式2,否则,为表达式3
代码示例:得到两个数的最大值 :
public static void main(String[] args) {
int a = 12;
int b = 23;
int max = a > b ? a : b;
System.out.println(max);
}
6.字符串
=====
从概念上Java字符串就是Unicode字符序列。Java没有内置的字符串类型,而是在Java类库中提供了一个预定义类,叫作String。用双引号括起来的字符串都是String类的实例:
String a = " ";
String names = “huanghe”;
6.1 子串
String类的substring方法可以从一个较大的字符串提取出一个子串,例如:
String str = “hello world”;
String str1 = str.substring(0,3); //会创建"hel"这个字符串
**注意:**在substring中从0开始计数,这里从0开始到3结束(不包括3),也就是复制位置0,1,2
**优点:**容易计算子串的长度,上述例子中子串的长度为3-0=3。
6.2 拼接
Java允许使用 “+” 连接两个字符串,例:
String str1 = “hello”;
String str2 = “world”;
String str3 = str1 + str2; //str3 = “helloworld”
**注意:**单词之间没有空格,+号完全按照给定的次序将两个字符串拼接起来。
这种特性常常用于输出语句中,例:
System.out.println(“your name is”+name);
6.3 检测字符串是否相等
使用equals方法检测两个字符串是否相等,**格式:**str1.equals(str2) , 其结果是布尔类型,可以定义一个布尔类型的变量接收结果,例:
public class OneBlogs {
public static void main(String[] args) {
String str1 = “hello”;
String str2 = “world”;
String str3 = “hello”;
boolean a = str1.equals(str3);
System.out.println(a);
}
}
运行结果:
6.4 空串与Null串
空串" "是字符长度为0的字符串,可以调用以下代码检查一个字符串是否为空串
if (str.length()==0) 或者 if(str.equals(“”))
String还可以存放一个特殊值为null,表示目前没有任何对象与该变量关联,检查一个字符串是否为null使用如下代码:
if( str == null )
7.输入与输出
=======
7.1 从键盘输入
使用Scanner读取字符串,整数,浮点数
首先需要导入util包:import java .util .Scanner;
还需构造一个与“标准输入流”System.in关联的Scanner对象:
Scanner sc = new Scanner(System.in);
例:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String name = sc.nextLine();
System.out.println(name);
}
如果想要读取一个整数,可以调用nextInt 方法(这种用的最多)例:
Scanner sc = new Scanner(System.in);
int age = sc.nextInt();
7.2 输出
在这里介绍三种输出方法:
int age = 20;
System.out.println(age); //第一种:输出自动换行
System.out.print(age); //第二种:输出不换行
System.out.printf(“%d”,age); //第三种:格式化输出
格式说明符尾部的转换符指示要格式化的数值的类型:f表示浮点数,s表示字符串,d表示十进制数。
8.程序逻辑控制
========
8.1 if 语句
语法格式1:
if(布尔表达式){
语句
}
如果布尔表达式结果为true,执行大括号中的语句,否则不执行。
语法格式2:
if(布尔表达式){
语句1;
}else{
语句2;
}
如果布尔表达式结果为true执行语句1,否则执行语句2。
语法格式3:
if(布尔表达式1){
语句1;
}else if(布尔表达式2){
语句2;
}else{
语句3;
}
表达式1成立执行语句1,表达式2成立执行语句2,否则执行语句3。
**注意:**if else 语句中可以不加大括号,但是只能写一条语句(不建议这样使用),else与和它最近的 if 相匹配。实际开放中建议加上大括号。
8.2 switch语句
基本语法:
switch(表达式){
case 1:
语句1;
break;
case 2:
语句2;
break;
case 3:
语句3;
break;
…
default:
不满足执行此语句;
break;
}
**执行流程:**先计算表达式的值,然后与case比较,有对应的就执行对应的语句,遇到break结束,当表达式的值没有与之对应,就执行default下面的语句。
最后
看完上述知识点如果你深感Java基础不够扎实,或者刷题刷的不够、知识不全面
小编专门为你量身定制了一套<Java一线大厂高岗面试题解析合集:JAVA基础-中级-高级面试+SSM框架+分布式+性能调优+微服务+并发编程+网络+设计模式+数据结构与算法>

针对知识面不够,也莫慌!还有一整套的<Java核心进阶手册>,可以瞬间查漏补缺

全都是一丢一丢的收集整理纯手打出来的
更有纯手绘的各大知识体系大纲,可供梳理:Java筑基、MySQL、Redis、并发编程、Spring、分布式高性能架构知识、微服务架构知识、开源框架知识点等等的xmind手绘图~


表达式1成立执行语句1,表达式2成立执行语句2,否则执行语句3。
**注意:**if else 语句中可以不加大括号,但是只能写一条语句(不建议这样使用),else与和它最近的 if 相匹配。实际开放中建议加上大括号。
8.2 switch语句
基本语法:
switch(表达式){
case 1:
语句1;
break;
case 2:
语句2;
break;
case 3:
语句3;
break;
…
default:
不满足执行此语句;
break;
}
**执行流程:**先计算表达式的值,然后与case比较,有对应的就执行对应的语句,遇到break结束,当表达式的值没有与之对应,就执行default下面的语句。
最后
看完上述知识点如果你深感Java基础不够扎实,或者刷题刷的不够、知识不全面
小编专门为你量身定制了一套<Java一线大厂高岗面试题解析合集:JAVA基础-中级-高级面试+SSM框架+分布式+性能调优+微服务+并发编程+网络+设计模式+数据结构与算法>
[外链图片转存中…(img-4V7bMm1R-1714630805100)]
针对知识面不够,也莫慌!还有一整套的<Java核心进阶手册>,可以瞬间查漏补缺
[外链图片转存中…(img-R31NSb4N-1714630805101)]
全都是一丢一丢的收集整理纯手打出来的
更有纯手绘的各大知识体系大纲,可供梳理:Java筑基、MySQL、Redis、并发编程、Spring、分布式高性能架构知识、微服务架构知识、开源框架知识点等等的xmind手绘图~
[外链图片转存中…(img-XSUaV6wU-1714630805101)]
[外链图片转存中…(img-P29h1VjK-1714630805102)]
本文详细介绍了Java编程中的变量声明与初始化、常量使用、算术运算、类型转换、逻辑与位运算、字符串操作、输入输出、if和switch语句等基础知识,为Java初学者提供了全面的学习指南。





