介绍
学习 JAVA 的理由:
全球最受欢迎的编程语言之一
是一种极为灵活的编程语言
好找工作
概念 java 编译流程
1 2 3 4 graph LR .java源码 --编译--> .Class字节码 --JVM--> 机器码
JDK, JRE, JVM 缩写名词解释
JDK—-J ava D evelopment K it—-java 开发工具
JRE—-J ava R untime E nv.—-java 的运行环境(库和工具)
JVM—-J ava V irtual M achine—-java 虚拟机(运行 java 程序)
1 2 graph LR JDK --- JRE --- JVM
IDE—-I ntegrated D evelopment E nvironment—-集成开发环境java SE
java 标准版
IDE 推荐 Eclipse 或 Intellij IDEA
Eclipse 快捷输入: sysout + alt
+ /
= System.out.println("test")
1 2 3 System.out.println("test" )
基础 变量
数据类型
大小
初始/引用
值
boolean
1 bit
初始
true/false
int
4 bit
初始
double
8 bit
初始
char
2 byte
初始
String
varies
引用
初始值
8 个类型
储存数据
只能储存一个值
内存占用小
快
引用值
无限制
储存内存地址
可以储存更多值
内存占用大
慢
1 2 3 4 5 6 7 int x = 123 ;float y = 3.14f ;boolean z = true ;char symbol = '@' ;String name = "Bro " ; System.out.println("Hello " +name);
用户输入 Scanner 扫描器
1 2 3 4 5 import java.util.ScannerScanner scanner = new Scanner (System.in);String name = scanner.nextLine();
Java GUI 1 2 3 4 5 6 7 8 9 10 11 import javax.swing.JOptionPane; ...String name = JOptionPane.showInputDialog("Enter your name" ); JOptionPane.showMessageDialog(null , "Hello " +name); int age = Integer.parseInt(JOptionPane.showInputDialog("Enter your age" )); JOptionPane.showMessageDialog(null , "You are " +age+" years old" );
数学包 1 2 3 4 5 6 7 8 9 10 11 12 double x = 3.14 ;double y = 10 ; Math.max(); Math.abs(); Math.sqrt(); Math.round(); Math.ceil(); Math.floor();
随机数 1 2 3 4 5 6 7 8 9 10 11 import java.util.Random; ...Random random = new Random ();int x = random.nextInt(100 ); double x = random.nextDouble(); ...
数组 1 2 3 4 5 6 7 8 9 String[] cars = {"Camaro" , "Corvette" , "Tesla" }; String[] cars = String[3 ]; #二维数组 String[][] cars = {{"1" , "2" , "3" }, {"4" , "5" , "6" }, }; String[][] cars = [3 ][3 ];
字符方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 String name = "Bro" ; name.equals("Bro" ); name.equalsIgnoreCase(); name.length(); name.charAt(); name.indexOf(); name.isEmpty(); name.toUpperCase(); name.toLowerCase(); name.trim(); name.replace("<替换前>" , "<替换后>" );
包装类(wrapper class) 封装类要慢于原始数据类型, 但封装类可以调用许多方法
1 2 3 4 5 6 7 8 Boolean a = true ;Character b = '@' ;Integer c = 123 ;Double d = 3.14 ;
原始数据类型
封装类
boolean
Boolean
char
Character
int
Integer
double
Double
数组列表 一个可调整大小的数组, 数组内的数据可以在其编译后加入和删除 但注意, 数组列表只储存引用数据类型
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import java.util.ArrayList; ArrayList<String> food = new ArrayList <String>(); food.add("pizza" ); food.add("hamburger" ); food.add("hotdog" ); food.set(0 , "sushi" ); food.remove(2 ); food.clear();for (int i=1 ; i<food.size(); i++){ System.out.println(food.get(i)); }
二维数组列表 一个动态的嵌套数组, 你可以在运行时改变数组大小
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 import java.util.*; ... ArrayList<ArrayList<String>> groceryList = new ArrayList (); ArrayList<String> backeryList = new ArrayList (); backeryList.add("pasta" ); backeryList.add("garlic bread" ); backeryList.add("donuts" ); ArrayList<String> produceList = new ArrayList (); produceList.add("tomatoes" ); produceList.add("zucchini" ); produceList.add("peppers" ); ArrayList<String> drinksList = new ArrayList (); drinksList.add("soda" ); drinksList.add("coffee" ); groceryList.add(backeryList); groceryList.add(produceList); groceryList.add(drinksList); System.out.println(groceryList);
foreach 循环 增强的 for 循环
1 2 3 4 5 6 7 8 9 10 String[] animals = {"cat" , "dog" , "rat" , "bird" };for (String i : animals) { System.out.println(i); } ArrayList<String> otherAnimals = new ArrayList (); otherAnimals.add("cat" ); otherAnimals.add("dog" )
方法, 函数(method) 相当于其他编程语言的函数
1 2 3 4 5 6 7 8 static void hello (String name) { System.out.println("Hello " +name); } hello("Bro~" );
重载方法 拥有同一个名字的多个方法; 但形参不同, 具体方法不同 例:
1 2 3 4 5 6 7 8 9 10 11 static int add (int a, int b) { return a + b; }static int add (int a, int b, int c) { return a + b + c }static int add (int a, int b, int c, int d) { return a + b + c + d }
printf 格式化输出 Java 的格式化输出1
1 2 System.out.printf("This is a format string %d" , 123 );
格式化
符号
十进制数
%d
浮点数
%f
布尔值
%b
字符
%c
字符串
%s
例:
1 2 3 4 5 6 7 8 9 % <标志> <精度> <宽度> <格式化类型> System.out.printf("Hello %10s" , "this is format" );
关键字 final final 关键字, 使其变量无法被更改
1 2 3 4 5 6 final double pi = 3.14159 ; pi = 4 ; System.out.print(pi);
面向对象 OOP