单词记录
cast:转换
reverse:反转
类型转换
低—->高
byte,short,char->int-->long-->float-->double
强制类型转换
高转低
int i= 128;
byte b = (byte)i;
sout(i)
sout(b)
自动转换
int i =128;
double ii = i
注意事项
- 不能转换布尔类型
- 不能把对象类型转为不相干的类型
- 高容量转低容量要强制转换
- 转换的时候纯在进度问题或者内存溢出
新特性
int money = 10_0000_1000
sout(money) //1000001000
字符中可以输入下划线,但是不会被输出和计算
变量和常量
类变量和实例变量
/**
* @Author: haifengzuishuai
* @Data: 2021/6/4 4:56 下午
*/
public class Hello {
static double a = 123;
String aa;
int aaa;
public static void main(String[] args) {
System.out.println(a);//类变量,不需要new类
Hello hello = new Hello();
System.out.println(hello.aa);//实例变量
System.out.println(hello.aaa);
}
}
常量
static final double aaaa= 3.22;//常量
运算符
% 是取余
= 一个等号是赋值
与:&&与两个同时满足 或:||其中一个满足 非!非你即我
二元运算符
sout(a+b)
自增自减
a++
b--
幂运算
3的2次方
double pow = Math.pow(3, 2);
System.out.println(pow);//9
三元运算
a+=b //a = a+b
a-=b//a = a-b
//字符串连接
int a =10
int b = 20
sout(""+a+b)//1020
sout(a+b+"")//30
//x ? y : z
//如果x==true,则结果为y,否则为z
循环
while循环
while 先判断后执行
/**
* @Author: haifengzuishuai
* @Data: 2021/6/4 4:56 下午
*/
public class Hello {
public static void main(String[] args) {
int i = 0;
int sum = 0;
while (i<101){
sum=sum+i;
i++;
}
System.out.println(sum);
}
}
switch
switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
switch(expression){
case value :
//语句
break; //可选
case value :
//语句
break; //可选
//你可以有任意数量的case语句
default : //可选
//语句
}
do while 先执行,后判断
/**
* @Author: haifengzuishuai
* @Data: 2021/6/4 4:56 下午
*/
public class Hello {
public static void main(String[] args) {
int i = 0;
int sum = 0;
while (i<0){
System.out.println(i);
sum=sum+i;
i++;
}
System.out.println("---------------");
do {
System.out.println(i);
i++;
}while (i<0);
}
}
for循环
/**
* @Author: haifengzuishuai
* @Data: 2021/6/4 4:56 下午
*/
public class Hello {
public static void main(String[] args) {
//初始值,条件,迭代递增
for(int i=0;i<=100;i++){
System.out.println(i);
}
}
}
输出99乘法表
/**
* @Author: haifengzuishuai
* @Data: 2021/6/4 4:56 下午
*/
public class Hello {
public static void main(String[] args) {
for (int j = 1; j <= 9; j++) {
for (int i = 1; i <= j; i++) {
System.out.print(j + "*" + i + "=" + (j * i) + "\t");
}
System.out.println();
}
}
}
阶乘:
5! 5 4 3 2 1
递归
/**
* @Author: haifengzuishuai
* @Data: 2021/6/4 4:56 下午
*/
public class Hello {
public static void main(String[] args) {
System.out.println(f(4));
}
public static int f(int n) {
if (n == 1) {
return 1;
} else {
return n * f(n - 1);
}
}
}
计算器练习
import javax.swing.*;
import java.util.Scanner;
/**
* @Author: haifengzuishuai
* @Data: 2021/6/4 4:56 下午
*/
public class Hello {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入计算方式:");
String jisuantype = scanner.next();
System.out.println("值1:");
double next = scanner.nextDouble();
System.out.println("值2:");
double next1 = scanner.nextDouble();
switch (jisuantype) {
case "+":
System.out.println(next + next1);
break;
case "-":
System.out.println(next - next1);
break;
case "*":
System.out.println(next * next1);
break;
case "/":
System.out.println(next / next1);
break;
}
scanner.close();
}
}
数组
定义
int[]=nums;//1声明数组
nums = new int[10];//分配空间
//赋值
nums[0]=1;....
//静态初始化
int[] a ={1,2,3,4}
//动态初始化
int[] a =new int[10]
a[0]=10
数组反转
/**
* @Author: haifengzuishuai
* @Data: 2021/6/4 4:56 下午
*/
public class Hello {
public static void main(String[] args) {
int[] a={1,2,3,4,6};
int[] reverse = reverse(a);
for (int i : reverse) {
System.out.println(i);
}
}
public static int[] reverse(int[] arrays){
int[] ints = new int[arrays.length];
//数组反转,未做判断,直接把最后一个赋值到新变量的第一个
for (int i = 0,j=arrays.length-1; i < arrays.length; i++,j--) {
ints[j]=arrays[i];
}
return ints;
}
}
二维数组
int[][] array={{1,2}{3,4]}}
array[0][1]
稀疏数组
import java.util.Arrays;
/**
* @Author: haifengzuishuai
* @Data: 2021/6/4 4:56 下午
*/
public class Hello {
public static void main(String[] args) {
//稀疏数组
int[][] ints = new int[11][11];
ints[1][3]=1;
ints[3][5]=2;
ints[4][5]=1;
for (int[] anInt : ints) {
for (int i : anInt) {
System.out.print(i+"\t");
}
System.out.println();
}
//稀疏数组保存
int sum =0;
for (int i = 0; i < 11; i++) {
for (int j = 0; j < 11; j++) {
if (ints[i][j]!=0){
sum++;
}
}
}
System.out.println(sum);//获取有效值个数
//2创建稀疏数组的数组
int[][] ints1 = new int[sum + 1][3];
ints1[0][0]=11;
ints1[0][1]=11;
ints1[0][2]=sum;
//将原来的稀疏数组中的非0 存入新数组
int count =0;
for (int i = 0; i < ints.length; i++) {
for (int j = 0; j < ints[i].length; j++) {
if (ints[i][j]!=0){
count++;
ints1[count][0]=i;
ints1[count][1]=j;
ints1[count][2]=ints[i][j];
}
}
}
for (int[] ints2 : ints1) {
System.out.println(Arrays.toString(ints2));
}
//还原值
int[][] ints3 = new int[ints1[0][0]][ints1[0][1]];
for (int i = 1; i < ints1.length; i++) {
ints3[ints1[i][0]][ints1[i][1]]=ints1[i][2];
}
for (int[] anInt : ints3) {
for (int i : anInt) {
System.out.print(i+"\t");
}
System.out.println();
}
}
}
数组排序
int[] a = {12, 2222, 143, 313, 614};
Arrays.sort(a);//升序
System.out.println(Arrays.toString(a));
冒泡排序
import java.util.Arrays;
/**
* @Author: haifengzuishuai
* @Data: 2021/6/4 4:56 下午
*/
public class Hello {
public static void main(String[] args) {
int temp = 0;
int[] a = {12, 2222, 143, 313, 614};
for (int i = 0; i < a.length - 1; i++) {
for (int j = 0; j < a.length - 1 - i; j++) {
if (a[j + 1] < a[j]) {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
System.out.println(Arrays.toString(a));
}
}