文章目录
说明:
此处为java代码
此处为运行结果
此样式为你键盘输入的内容
此处为说明或注意
喜闻乐见的 Hello World
public class HelloWorld { //定义一个名叫"HelloWorld"的类
public static void main(String[] args){ //main方法: java程序的入口
System.out.println("Hello World"); //打印至控制台
}
}
Hello World
要求java源文件名必须与类名相同,即文件名必须为HelloWorld.java
System.out.println();
将括号内的内容打印至控制台
main方法: java程序的入口, 即运行时从此处开始运行
数据类型
常见数据类型
public class Demo {
public static void main(String[] args) {
int i = 123; //整数
double d = 1.23; //小数
char c = 'a'; //字符
String s = "abc"; //字符串
boolean b = true; //真假 真:true 假:false
System.out.println(i);
System.out.println(d);
System.out.println(c);
System.out.println(s);
System.out.println(b);
}
}
123
1.23
a
abc
true
只有字符串类型首字母大写:String
字符类型使用单引号或双引号包裹都可以,但只能赋值单个字符
字符串类型必须用双引号包裹
数据类型转换
public class Demo {
public static void main(String[] args) {
int i = 123;
double d = 1.23;
String si = "123";
String sd = "1.23";
int i1 = (int) d; //高精度转低精度 需要强行转换 直接砍掉小数点之后的数字
System.out.println(i1);
double d1 = i; //低精度转高精度 可以直接转换
System.out.println(d1);
int i2 = Integer.parseInt(si); //字符串转数字需使用 Integer 包装 且字符串内容必须为整数
System.out.println(i2);
double d2 = Double.parseDouble(sd); //字符串转数字需使用 Double 包装 且字符串内容必须为整数或小数
System.out.println(d2);
String si1 = String.valueOf(i); //String.valueOf 可将其他类型数据转换成字符串类型
System.out.println(si1);
String sd1 = String.valueOf(d);
System.out.println(sd1);
String si2 = i + ""; //拼接一个空字符串效果一样 使用字符串拼接会自动将其他类型转换成字符串
System.out.println(si2);
String sd2 = d + "";
System.out.println(sd2);
}
}
1
123.0
123
1.23
123
1.23
123
1.23
java是强类型语言
数组
public class Demo {
public static void main(String[] args) {
int[] as = new int[3]; //使用 数据类型[] 定义一个数组
as[0] = 1; //注意: 索引是从0开始
as[1] = 12;
as[2] = 13;
String[] ss = {"y", "w", "x", "k"}; //可以直接将数组赋值 用大括号包裹 以逗号分割
System.out.println(as[0]);
System.out.println(as[1]);
System.out.println(as[2]);
System.out.println(ss[0]);
System.out.println(ss[1]);
System.out.println(ss[2]);
System.out.println(ss[3]);
}
}
1
12
13
y
w
x
k
数组大小在定义之后是无法改变的
数组是可以嵌套的 二维数组 三维数组 …
int[][] = {{1, 2}, {2, 3, 6}, {3, 4, 8, 9}, {0, 3, 2, 1, 5, 7}}
运算符
算数运算符
public class Demo {
public static void main(String[] args) {
int a = 15;
int b = 10;
System.out.println("a = " + a); //此处 + 为字符串拼接,并非运算符
System.out.println("b = " + b);
System.out.println("a + b = " + (a + b)); //加法
System.out.println("a - b = " + (a - b)); //减法
System.out.println("a * b = " + (a * b)); //乘法
System.out.println("a / b = " + (a / b)); //除法
System.out.println("a % b = " + (a % b)); //取余
System.out.println("a++ = " + a++); //先输出 再自加1
System.out.println("++a = " + ++a); //先自加1 再输出
System.out.println("a-- = " + a--); //先输出 再自减1
System.out.println("--a = " + --a); //先自减1 再输出
}
}
a = 15
b = 10
a + b = 25
a - b = 5
a * b = 150
a / b = 1
a % b = 5
a++ = 15
++a = 17
a-- = 17
–a = 15
除法只能获取到整数部分
++a
是先让a自加1再参与运算
而a++
是先参与运算再让a自加1
{
int a = 10;
System.out.println(a++ + ++a);
//执行结果:22 (10 + 12)
System.out.println(a++);
//执行结果:12
System.out.println(a);
//执行结果:13
}
比较运算符
public class Demo {
public static void main(String[] args) {
int a = 15;
int b = 10;
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("a == b : " + (a == b)); //等于
System.out.println("a != b : " + (a != b)); //不等于
System.out.println("a > b : " + (a > b)); //大于
System.out.println("a < b : " + (a < b)); //小于
System.out.println("b >= a : " + (b >= a)); //大于等于
System.out.println("b <= a : " + (b <= a)); //小于等于
}
}
a = 15
b = 10
a == b : false
a != b : true
a > b : true
a < b : false
b >= a : false
b <= a : true
在java中=
是赋值操作 想要比较两个数是否相等需要用==
位运算符
public class Demo {
public static void main(String[] args) {
int a = 15;
int b = 10;
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("a & b = " + (a & b)); //或运算符: a的二进制与b的二进制相对应位的值都是1,则为1,否则为0
System.out.println("a | b = " + (a | b)); //非运算符: a的二进制与b的二进制相对应位的值都是 0,则为0,否则为1
System.out.println("a ^ b = " + (a ^ b)); //异或运算符: a的二进制与b的二进制相对应位的值相同,则为0,否则为1
System.out.println("~a = " + (~a)); //取反运算符: 翻转a的二进制的每一位,即0变成1,1变成0
System.out.println("a << 2 = " + (a << 2)); //左移运算符: a的二进制的每一位左移2位
System.out.println("a >> 2 = " + (a >> 2)); //右移运算符: a的二进制的每一位右移2位
}
}
a = 15
b = 10
a & b = 10
a | b = 15
a ^ b = 5
~a = -16
a << 2 = 60
a >> 2 = 3
位运算涉及二进制的原码,反码,补码 等领域 了解即可
<<1;
//二进制左移一位,相当于乘二
>>1;
//二进制右移一位,相当于除二
逻辑运算符
public class Demo {
public static void main(String[] args) {
boolean a = true;
boolean b = false;
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("a && b : " + (a && b)); //逻辑与运算符: 两个操作数都为真,条件才为真
System.out.println("a || b : " + (a || b)); //逻辑或操作符: 两个操作数任何一个为真,条件就为真
System.out.println("!a : " + (!a)); //逻辑非运算符: 取反用来反转操作数的逻辑状态
}
}
a = true
b = false
a && b : false
a || b : true
!a : false
&&
和||
比&
和|
效率更高
流程控制
while
public class Demo {
public static void main(String[] args) {
int i = 0;
while(i < 3){ //()内为条件,当条件为真时执行循环
System.out.println(i);
i++;
}
}
}
0
1
2
当i
为3
时i < 3
不成立,跳出循环
for
public class Demo {
public static void main(String[] args) {
for (int i = 0; i < 3; i++) {
System.out.println(i);
}
}
}
0
1
2
与while
相比看起来更加整洁 但变量i
只在循环中可以使用
被continue
打断循环i++
也会执行
do while
public class Demo {
public static void main(String[] args) {
int i = 0;
do{
System.out.println(i);
i++;
}while(i < 3);
}
}
0
1
2
无论条件真假都至少循环一次
if else
public class Demo {
public static void main(String[] args) {
int a = 5;
if (a > 5) {
System.out.println("a > 5");
} else if (a < 5) {
System.out.println("a > 5");
} else {
System.out.println("a = 5");
}
}
}
a = 5
switch
public class Demo {
public static void main(String[] args) {
int a = 3;
switch (a) {
case 1: {
System.out.println("a = 1");
break;
}
case 2: {
System.out.println("a = 2");
break;
}
case 3: {
System.out.println("a = 3");
break;
}
default: {
System.out.println("a != 1 && a != 2 && a != 3");
break;
}
}
}
}
a = 3
与if else
对比switch
只能判断是否等于,无法判断是否大于或小于
三元运算
public class Demo {
public static void main(String[] args) {
int i = 10;
String s = (i < 12) ? "真的" : "假的";
System.out.println(s);
}
}
真的
a ? b : c;
判断 a 是否为真,若为真返回 b ,否则返回 c
死循环
public class Demo {
public static void main(String[] args) {
while (true){
System.out.println("起床");
System.out.println("吃饭");
System.out.println("敲代码");
}
}
}
起床
吃饭
敲代码
起床
吃饭
敲代码
起床
吃饭
敲代码
。。。。。。(无限循环)
在不知到要循环几次的时候可以采用死循环
一般使用continue
和break
控制循环
continue break
public class Demo {
public static void main(String[] args) {
for (int i = 0; i < 100; i++) {
if (i == 2) {
continue; //跳出当前循环,进行下一循环
}
if (i == 5) {
break; //终止循环
}
System.out.println(i);
}
}
}
0
1
3
4
通常配合if
语句使用
键盘输入输出
import java.util.Scanner; //导入键盘输入所需的包
public class Demo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); //创建一个可以读取我们键盘输入内容的对象 命名为 sc
System.out.print("请输入字符串: "); //打印至控制台并且不换行
String s = sc.next(); //等待键盘输入字符串
System.out.print("请输入整数: ");
int i = sc.nextInt(); //等待键盘输入整数
System.out.print("请输入小数: ");
double d = sc.nextDouble(); //等待键盘输入小数
System.out.println("你输入的字符串是: " + s);
System.out.println("你输入的整数是: " + i);
System.out.println("你输入的小数是: " + d);
}
}
请输入字符串:
abc
请输入整数:123
请输入小数:1.23
你输入的字符串是: abc
你输入的整数是: 123
你输入的小数是: 1.23
import
: 导包 导入写好的类 可以使用其方法,变量等
数据类型不能乱,否则报错
随机数
import java.util.Random; //导入一个可以获取随机数的包
public class Demo {
public static void main(String[] args) {
Random r = new Random();
for (int i = 0; i < 5; i++) {
int a = r.nextInt(100); //获取0~99之间的随机整数
System.out.println(a);
}
}
}
40
22
71
68
18
由于获取的是随机数,每次生成的结果都不会一样
生成a
到b
之间的随机数(a < b):
int i = r.nextInt(b - a + 1) + a;