JAVA 基础
数据类型
-
基本类型
-
引用类型
-
基本数据类型
- 数值类型
- Boolean类型
-
引用数据类型
- 类
- 接口
- 数组
public class Demo01 {
public static void main(String[] args) {
int num1 = 10;
byte num2 = 20;
short num3 = 30;
long num4 = 30L;
float num5 = 50.1F;
double num6 = 3.1415926535879;
char name = 'A';
String str = "name";
boolean flag = true;
}
}
字节
- 位 bit
- 字节 Byte
1 B = 8 bit
1024 B = 1 KB
1024 KB = 1 M
字符:计算机使用的字母、数字、字、符号
电脑32位和64位的区别?
进制
- 二进制 0b
- 十进制
- 八进制 0
- 十六进制 0x
编码
Unicode 0 - 655536
u0000 - uFFFF
类型转换
public class Demo02 {
public static void main(String[] args) {
int i =128;
byte b = (byte)i; //强制转换,内存溢出-128
System.out.println(i);
System.out.println(b);
}
}
变量
type varName [=value] [{,varName[=value]}];
作用域
- 类变量
- 实例变量
- 局部变量
public class Demo03 {
String name; //实例变量
int age;
boolean flag;
static double salary = 2500; //类变量
static final double PI = 3.14; //常量
public static void main(String[] args) {
int i = 10; //局部变量
System.out.println(i);
Demo03 demo03 = new Demo03();
System.out.println(demo03.age);
System.out.println(demo03.flag);
System.out.println(demo03.name);
System.out.println(salary);
System.out.println(PI);
}
public int add(int x, int y){
return(x + y);
}
}
命名规范
- 英文,有意义
- 类变量局部变量 首字母小写,驼峰原则
- 类名 首字母大写,驼峰原则
- 常量 字母大写和下划线
- 方法名 首字母小写驼峰原则
运算符
- / 注意类型转换
算数运算符、逻辑运算符、关系运算符、赋值运算符、位运算符、条件运算符、扩展赋值运算符
public class Demo01 {
public static void main(String[] args) {
int a = 1;
int b = a++;
System.out.println("a = "+a);
System.out.println("b = "+b);
int c = ++a;
System.out.println("a = "+a);
System.out.println("c = "+c);
}
}
a = 2
b = 1
a = 3
c = 3
Scanner
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接收: ");
if (scanner.hasNext()){
String str = scanner.next();
System.out.println("输入的内容为: "+ str);
}
scanner.close();
}
}
next不能带有空格
nextLine以Enter为结束符
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
int i = 0;
float f = 0.0f;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入整数: ");
if (scanner.hasNextInt()){
i = scanner.nextInt();
System.out.println("整数为: "+i);
}else{
System.out.println("输入的不是整数!");
}
System.out.println("请输入小数: ");
if (scanner.hasNextFloat()){
f = scanner.nextFloat();
System.out.println("小数为: "+f);
}else {
System.out.println("输入的不是小数!");
}
scanner.close();
}
}
public class Demo03 {
public static void main(String[] args) {
double sum = 0;
int m = 0;
double x;
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextDouble()){
x = scanner.nextDouble();
m++;
sum += x;
}
System.out.println(m + "个数字的和为: "+ sum+" ,平均值为:"+ sum/m);
scanner.close();
}
}
流程控制
顺序结构
选择结构
- if
- switch
if单选择结构
if(布尔表达式){
//表达式为true
}
import java.util.Scanner;
public class IfDemo01 {
public static void main(String[] args) {
System.out.println("请输入内容:");
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
if (s.equals("Hello")){
System.out.println(s);
}
System.out.println("END");
scanner.close();
}
}
public class Demo04 {
public static void main(String[] args) {
int i = 1 ;
int j = i++;
if ((i==(++j))&&((i++))==j){
i+=j;
}
System.out.println("i="+i);//5
}
}
if双选择结构
if(布尔表达式){
//表达式为true
}else{
//表达式为false
}
import java.util.Scanner;
public class IfDemo02 {
public static void main(String[] args) {
System.out.println("请输入成绩:");
Scanner scanner = new Scanner(System.in);
int score = scanner.nextInt();
if (score >= 60){
System.out.println("及格");
}else {
System.out.println("不及格");
}
scanner.close();
}
}
if多选择结构
if(布尔表达式1){
//表达式1为true
}else if(布尔表达式2){
//表达式2为true
}else{
//以上表达式均为false
}
import java.util.Scanner;
public class IfDemo03 {
public static void main(String[] args) {
System.out.println("请输入成绩:");
Scanner scanner = new Scanner(System.in);
int score = scanner.nextInt();
if (score<=100 && score>=90){
System.out.println("优秀");
}else if (score>=70 && score < 90){
System.out.println("良好");
}else if (score>=60 && score<70){
System.out.println("及格");
}else if (score>=0 && score <60){
System.out.println("不及格");
}else{
System.out.println("请输入0-100分成绩");
}
scanner.close();
}
}
if嵌套结构
public class ForDemo01 {
public static void main(String[] args) {
for (int i = 1; i < 10; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j+" * "+ i +"= "+i*j+"\t");
}
System.out.println("");
}
}
}
遍历数组
public class ForDemo02 {
public static void main(String[] args) {
int[] numbers = {10,20,25,30};
for(int i:numbers){
System.out.println(i);
}
}
}
break\continue
数组
相同类型的有序集合
dataType[] arrayRefVar;
dataType[] arrayRefVar = new dataTypeRefVar[arraySize];
数组索引从0开始
获取长度 arrays.length
public class ArrayDemo {
public static void main(String[] args) {
int[] numbers; //声明变量
// int numbers[];
numbers = new int[10]; //创建数组
numbers[0] = 1;
numbers[1] = 2; //赋值
numbers[2] = 3; //赋值
numbers[3] = 4; //赋值
numbers[4] = 5; //赋值
numbers[5] = 6; //赋值
numbers[6] = 7; //赋值
numbers[7] = 8; //赋值
numbers[8] = 9; //赋值
numbers[9] = 10; //赋值
// System.out.println(numbers[8]);
int sum = 0;
for (int i =0 ; i < numbers.length;i++) {
sum = sum + numbers[i];
}
System.out.println(sum);
}
}
public class ArrayDemo01 {
public static void main(String[] args) {
//静态初始化
int[] a = {1, 2, 3}; //创建+赋值
//动态初始化,隐式初始化
int[] b = new int[10];
b[0] = 10;
}
}
public class ArrayDemo02 {
public static void main(String[] args) {
int[] arrays = {1, 2, 3, 4,5};
for (int i = 0; i < arrays.length; i++) {
System.out.println(arrays[i]);
}
int sum = 0;
for (int i = 0; i < arrays.length; i++) {
sum = sum + arrays[i];
}
System.out.println(sum);
int max = arrays[0];
for (int i = 1; i < arrays.length; i++) {
if (arrays[i]>max){
max =arrays[i];
}
}
System.out.println(max);
for (int array : arrays){
System.out.println(array);
}
int[] reverse = reverse(arrays);
printArray(reverse);
}
public static void printArray(int[] arrays){
for (int i = 0; i < arrays.length; i++) {
System.out.println(arrays[i]);
}
}
public static int[] reverse(int[] arrays){
int[] result = new int[arrays.length];
for (int i = 0,j=result.length-1 ; i < arrays.length ; i++, j--) {
result[j] = arrays[i];
}
return result;
}
}
多维数组
public class ArrayDemo03 {
public static void main(String[] args) {
int[][] array = {{1,2},{2,3},{3,4},{4,5}};
System.out.println(array[0]);
System.out.println(array[0][1]);
printArray(array[0]);
System.out.println(array.length);
System.out.println(array[0].length);
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.println(array[i][j]);
}
}
}
public static void printArray(int[] arrays){
for (int i = 0; i < arrays.length; i++) {
System.out.println(arrays[i]);
}
}
}
Arrays类
import java.util.Arrays;
public class ArrayDemo04 {
public static void main(String[] args) {
int[] a = {1,2,3,4,5677,3457,1124};
System.out.println(a);
//打印数组元素
System.out.println(Arrays.toString(a));
//排序
Arrays.sort(a);
System.out.println(Arrays.toString(a));
}
}
冒泡排序
import java.util.Arrays;
public class ArrayDemo05 {
public static void main(String[] args) {
int[] a = {1,5,2,56,78,34,467,43};
int[] sort = sort(a);
System.out.println(Arrays.toString(a));
}
public static int[] sort(int[] array){
int temp = 0;
for (int i = 0; i < array.length-1; i++) {
for (int j = 0; j < array.length-1-i; j++) {
if (array[j]>array[j+1]){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
return array;
}
}