一、API帮助文档介绍及使用
API:应用程序编程接口。即已经写好的类,可直接调用解决问题。
JDK11 API帮助文档下载地址:
https://blog.csdn.net/ZL_2014/article/details/115601611
首先在索引位置搜索需要查找的类(图1,以System和Random类为例),再查看System类是属于java.lang核心包中,表示不需要编写导包代码;查看Random类是属于java.util包中,表示使用Random类需要编写import java.util.Random导包代码。再查看类的介绍以及构造方法是否带参,最后再查看类的成员方法即如何使用。



二、字符串相关类介绍
⚪String类:表示字符串。 Java程序中的所有字符串文字(例如"abc" )都实现为此类的实例。
▲注意:
①Java程序中所有双引号字符串都是String类字符串,可以直接创建。即String s=“abc”;
②字符串是不变的; 它们的值在创建后无法更改。更改则需要使用新对象替换。
③String对象不可变,但可以共享。
例:

package com.xuexi.leice;
public class StringDemo {public static void main(String[] args) {String s1="abc";//String类没有set方法,"abc"为String类一对象System.out.println(s1);s1="def";//"def"为String类新对象,用新对象替换s1System.out.println(s1);String s2="def";System.out.println(s1==s2);//输出true}
}

字符串常量池(StringTable):双引号创建String对象时,将当前不存在的字符串常量创建至池中,将已存在的字符串常量与其复用。

String类常见构造方法 说明
public String() 创建一个空白字符串,不包含任何内容
public String(char[] chs) 根据传入的字符数组创建字符串对象
public String(String original) 根据传入的字符串创建字符串对象

例:

package com.xuexi.leice;
public class StringDemo2 {public static void main(String[] args) {String s1="abc";System.out.println(s1);//abcchar ch[]={'a','b','c'};String s2=new String(ch);System.out.println(s2);//abcString s3=new String("abc");System.out.println(s3);//abc}
}

典例1:下例输出false。主方法进入栈区后,声明s1变量字符串类型,由于当前字符串常量池中没有"abc"对象,则创建"abc"对象,s1记录"abc"地址,同理创建"ab"对象且声明s2变量记录"ab"地址。下面声明s3对象且创建"c"对象,s3为s2和"c"的拼接,在堆内存中创建StringBuilder的对象,在其中负责将s2和"c"完成拼接,且不能直接赋给s3(拼接后为StringBuilder型,s3为String型),自动调用StringBuilder型中toString()方法转换为String型对象空间中。

public class StringDemo {public static void main(String[] args) {String s1="abc";String s2="ab";String s3=s2+"c";//变量和常量的拼接System.out.println(s1==s3);//false}
}


典例2:下例输出true。主方法进入栈区后,声明s1变量字符串类型,创建"abc"对象;声明s2变量字符串类型,右端为三个常量的拼接,根据Java的常量优化机制(若等号右侧均为常量,则在编译时生成的.class字节码文件中自动运算出右侧结果并赋值给左侧), String s2=“a”+“b”+“c”;语句等价于 String s2=“abc”;再由字符串常量池确定地址相同。

public class StringDemo {public static void main(String[] args) {String s1="abc";String s2="a"+"b"+"c";//常量间的拼接System.out.println(s1==s2);//true}
}


典例3:下例输出false。主方法进入栈区后,声明s1变量字符串类型,由于当前字符串常量池中没有"abc"对象,则创建"abc"对象,s1记录"abc"地址。声明s2变量字符串类型,通过带参构造函数new对象,堆内存开辟新内存空间,参数"abc"为一对象,检查字符串常量池是否存在,当前对象"abc"在字符串常量池中已存在,无需再创建新对象,直接拷贝副本至新创建空间中。

public class StringDemo {public static void main(String[] args) {String s1="abc";String s2=new String("abc");System.out.println(s1==s2);//false}
}



▲字符串内容比较

package com.xuexi.leice.method;
public class StringMethodDemo1 {public static void main(String[] args) {String s1="abc";String s2=new String("abc");//s1==s2 false/*(public boolean) equals​(Object anObject) 将此字符串与指定的对象进行比较*/System.out.println(s1.equals(s2));//true/*(public boolean) equalsIgnoreCase​(String anotherString) 将此 String与另一个 String比较,忽略了大小写*/String s3="ABC";System.out.println(s1.equals(s3));//falseSystem.out.println(s1.equalsIgnoreCase(s3));//true}
}

例:模拟用户登录,已知正确的用户名和密码,共有三次机会,登陆成功后给出相应提示。

package com.xuexi.leice.method;
import java.util.Scanner;
public class StringMethodDemo2 {public static void main(String[] args) {String username="abc";//正确用户名abcString password="123";//正确密码123int cnt=0;//记录登录次数Scanner input=new Scanner(System.in);while (cnt<3){System.out.println("Please input the username:");String usn=input.nextLine();System.out.println("Please input the password:");String psd=input.nextLine();cnt++;if(usn.equals(username)&&psd.equals(password)){System.out.println("登录成功");break;}if(cnt==3)System.out.println("失败");}}
}

▲字符串转换字符数组

package com.xuexi.leice.method;
public class StringMethodDemo3 {public static void main(String[] args) {String s="abc def";/*(public char[]) toCharArray() 将此字符串转换为新的字符数组*/char[] chars = s.toCharArray();//s.toCharArray().var+回车快捷生成数组for (int i = 0; i < chars.length; i++) {//chars.fori快捷遍历System.out.print(chars[i]+" ");//a b c   d e f}System.out.println();System.out.println("---");//分隔符/*(public char) charAt​(int index) 返回指定索引处的 char值*/char c = s.charAt(2);//字符串第二个(0开始)字符cSystem.out.println(c);//字符串每个字符的遍历for (int i = 0; i < s.length(); i++) {System.out.print(s.charAt(i)+" ");//a b c   d e f}}
}

例:键盘录入字符串,统计该字符串中大小写字符和数字字符出现的次数(其他字符忽略)。

package com.xuexi.leice.method;
import java.util.Scanner;
public class StringMethodDemo4 {public static void main(String[] args) {Scanner input=new Scanner(System.in);String s=input.nextLine();char[] chars = s.toCharArray();int cnt1=0,cnt2=0,cnt3=0;for (int i = 0; i < chars.length; i++) {if(chars[i]>='A'&&chars[i]<='Z'){cnt1++;}else if(chars[i]>='a'&&chars[i]<='z'){cnt2++;}else if(chars[i]>='0'&&chars[i]<='9'){cnt3++;}}System.out.println("大写字母:"+cnt1+"个"+" 小写字母:"+cnt2+"个"+" 数字字符:"+cnt3+"个");}
}
//aAb3&c2B*4CD1
//大写字母:4个 小写字母:3个 数字字符:4个

▲字符串的截取

package com.xuexi.leice.method;
public class StringMethodDemo5 {public static void main(String[] args) {/*(public String) substring​(int beginIndex) 返回一个字符串,该字符串是此字符串的子字符串根据传入的索引开始截取,截取到字符串末尾。范围(0开始):[beginIndex,length)(public String) substring​(int beginIndex, int endIndex) 返回一个字符串,该字符串是此字符串的子字符串根据传入的开始和结束索引,截取字符串。范围(0开始):[beginIndex,endIndex)*/String s="abc def ghi";String sst1 = s.substring(2);System.out.println(sst1);//c def ghiString sst2 = s.substring(3, 9);System.out.println(sst2);// def g}
}

例:手机号屏蔽,以字符串形式从键盘接收一手机号,将中间四位号码屏蔽。

package com.xuexi.leice.method;
import java.util.Scanner;
public class StringMethodDemo6 {public static void main(String[] args) {Scanner input=new Scanner(System.in);String tel=input.nextLine();//15678561456String head_tel=tel.substring(0,3);String tail_tel=tel.substring(7);System.out.println(head_tel+"****"+tail_tel);//156****1456}
}

▲字符串替换

package com.xuexi.leice.method;
public class StringMethodDemo7 {public static void main(String[] args) {/*public String replace​(CharSequence target, CharSequence replacement) 接口replacement替换接口target*/String s="abc def ghi jkl";String rs = s.replace("bc ", "bc");System.out.println(rs);//abcdef ghi jklString rs2 = s.replace("zxy", "xyz");System.out.println(rs2);//abc def ghi jkl}
}

▲字符串切割

package com.xuexi.leice.method;public class StringMethod8 {public static void main(String[] args) {/*(public String[]) split​(String regex) 根据传入的字符串作为规则切割当前字符串(public String[]) split​(String regex, int limit) 将此字符串拆分为给定 regular expression的匹配项*/String s="192,168,1,1";String[] sp = s.split(",");for (int i = 0; i < sp.length; i++) {System.out.print(sp[i]+" ");//192 168 1 1}//注意:上例","更换为"."会出现问题,正则表达式中"."表示通配符String s1="192.168.1.1";String[] sp2 = s1.split("\\.");//使用转义字符"\\"for (int i = 0; i < sp2.length; i++) {System.out.print(sp2[i]+" ");//192 168 1 1}}
}

⚪StringBuilder类:提高字符串操作效率。可变字符序列,是字符缓冲区即可以存储任意数据类型,其类型组合成字符串。
引入:利用循环进行万级以上的字符串拼接,查看不同方法的效率

package com.xuexi.leice.StringBuilderMethod;
public class StringBuilderDemo1 {public static void main(String[] args) {method1();method2();}//System.currentTimeMillis()获取当前时间距离1970年1月1日0时0分0秒经历的毫秒值(1s=1000ms)private static void method1(){long start_time = System.currentTimeMillis();String s="";for (int i = 0; i < 1e5; i++) {s+="abc";}long end_time = System.currentTimeMillis();System.out.println(end_time-start_time);//14093}private static void method2(){long start_time = System.currentTimeMillis();StringBuilder sb=new StringBuilder();for (int i = 0; i < 1e5; i++) {sb.append("abc");}long end_time = System.currentTimeMillis();System.out.println(end_time-start_time);//3}
}
StringBuilder类常见构造方法 说明
public StringBuilder() 构造一个字符串构建器,其中不包含任何字符,初始容量为16个字符(容量不足自动扩容)
public StringBuilder​(int capacity) 构造一个字符串构建器,其中没有字符,且具有 capacity参数指定的初始容量
public StringBuilder​(String str) 构造一个初始化为指定字符串内容的字符串构建器
StringBuilder常用成员方法 说明
public StringBuilder append(任意类型) 添加数据且返回数据本身
public StringBuilder reverse() 反转容器内容
public int length() 返回容器长度(字符个数)
public String toString() 将StringBuilder类型转换为String类型
package com.xuexi.leice.StringBuilderMethod;
public class StringBuilderDemo2 {public static void main(String[] args) {/*(public StringBuilder) append(任意类型) 添加数据且返回数据本身(public StringBuilder) reverse() 反转容器内容(public String) toString() 将StringBuilder类型转换为String类型*/StringBuilder sb=new StringBuilder();sb.append("abc");//Stringsb.append(123);//intsb.append(12.5);//doubleStringBuilder sb1=sb.append(false);//boolean/*等价sb.append("abc").append(123).append(12.5).append(false)即链式编程:调用函数的返回结果是对象可以继续向下调用方法*/System.out.println(sb);//abc12312.5falseSystem.out.println(sb1);//abc12312.5falseSystem.out.println(sb==sb1);//true 指向同一地址System.out.println(sb.reverse());//eslaf5.21321cbaSystem.out.println(sb);//原sb对象同时也反转 eslaf5.21321cbaSystem.out.println(sb.getClass());//class java.lang.StringBuilderSystem.out.println(sb.toString().getClass());//class java.lang.String}
}

例:回文字符串:键盘录入一字符串,判断是否是对称字符串。

package com.xuexi.leice.StringBuilderMethod;
import java.util.Scanner;
public class StringBuilderDemo3 {public static void main(String[] args) {Scanner input=new Scanner(System.in);StringBuilder sb=new StringBuilder();String s=input.nextLine();sb.append(s);StringBuilder rsb = sb.reverse();if(s.equals(rsb.toString()))System.out.println("回文字符串");elseSystem.out.println("非回文字符串");}
}

例:定义一函数,将int类型数组中的数据按照指定格式拼接为字符串并返回。

package com.xuexi.leice.StringBuilderMethod;
import java.util.Scanner;
public class StringBuilderDemo4 {public static void main(String[] args) {Scanner input=new Scanner(System.in);int n=input.nextInt();int a[]=new int[n];for (int i = 0; i < n; i++)a[i]=input.nextInt();System.out.println(arrayToString(a));}//{1,2,3}->[1,2,3]public static String arrayToString(int a[]){//使用StringBuilder拼接效率更高StringBuilder sb=new StringBuilder("[");for (int i = 0; i < a.length; i++){if(i<a.length-1)sb.append(a[i]).append(",");elsesb.append(a[i]);}sb.append("]");return sb.toString();}
}

引入问题:拼接字符串使用StringBuilder效率相较于String效率更高的原理

//String拼接字符串
public class Test {public static void main(String[] args) {String s1="a";String s2=s1+"b";String s3=s2+"c";}
}

//StringBuilder拼接字符串
public class Test {public static void main(String[] args) {StringBuilder sb=new StringBuilder();sb.append("a").append("b").append("c");}
}


三、集合基础:集合长度可变
ArrayList长度可变原理:当创建ArrayList集合容器时,底层存在一个长度为10的空数组。当数组满时需要再添加元素时,会扩容原数组1.5倍大小(长度15)的新数组。将原数组数据拷贝到新数组中,再继续添加数组。原数组不定时被垃圾回收站清理,以此类推。

基本数据类型 对应包装类
byte java.lang.Byte(下同java.lang省略)
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character
package com.xuexi.jiehefund;
import java.util.ArrayList;//使用ArrayList需要导包
public class ArrayListDemo1 {public static void main(String[] args) {ArrayList al=new ArrayList();//空参构造创建集合alal.add("Mike");al.add("Lily");al.add("Jim");al.add(1234);System.out.println(al);//[Mike, Lily, Jim, 1234]/*ArrayList al=new ArrayList();使得al可以添加任何类型数据,使得数据不够严谨ArrayList<E> al=new ArrayList<E>();限制al添加指定数据类型E*/ArrayList<Integer> al1=new ArrayList<Integer>();//jdk7后,new ArrayList<E>()若指定可不需再指定ArrayList<Boolean> al2=new ArrayList<>();al1.add(123);al1.add(456);al2.add(true);al2.add(false);al2.add(true);System.out.println(al1);//[123, 456]System.out.println(al2);//[true, false, true]}
}
ArrayList常用成员方法 说明
public int size() 返回集合中元素个数
public boolean add(E e) 指定元素e添加至末尾,返回是否添加成功
public void add(int index,E e) 指定元素e添加至指定位置index
public E get(int index) 返回指定索引处元素
public E remove(int index) 删除指定索引处的元素
public boolean remove(Object o) 删除指定元素,返回是否删除成功
public E set(int index,E e) 修改指定索引处的元素,返回被修改元素
package com.xuexi.jiehefund;
import java.util.ArrayList;
public class ArrayListDemo2 {public static void main(String[] args) {ArrayList<Integer> al=new ArrayList<>();boolean f_a_s = al.add(100);//System.out.println(f_a_s);//trueal.add(200);al.add(300);al.add(400);//[100,200,300,400]al.add(2,500);//在索引为2(0开始)处添加元素500 注意索引不能越界//System.out.println(al);//[100, 200, 500, 300, 400]Integer re = al.remove(2);//根据索引删除:删除索引为2(0开始)元素 返回对应E(Integer)类型的元素//System.out.println(al);//[100, 200, 300, 400]//System.out.println(re);//500boolean re2 = al.remove(Integer.valueOf(400));//根据元素删除:删除集合中400的元素 返回是否删除成功//al.remove(400);默认删除索引为400的元素,删除int类型的指定元素使用Integer.valueOf(元素)// 没有指定元素 删除失败 返回false//System.out.println(al);//[100, 200, 300]//System.out.println(re2);//trueInteger sev = al.set(1, 50);//修改索引为1的元素为50,返回原元素200//System.out.println(al);//[100, 50, 300]//System.out.println(sev);//200//System.out.println(al.get(2));//300 获取索引为2的元素//System.out.println(al.get(3));//Error 越界}
}

例:创建存储字符串的集合,存储字符串元素,遍历集合。

package com.xuexi.jiehefund;
import java.util.*;
public class ArrayListDemo3 {public static void main(String[] args) {ArrayList<String> al=new ArrayList<>();Scanner input=new Scanner(System.in);int n=input.nextInt();for (int i = 0; i < n; i++) {String s=input.next();al.add(s);}for (int i = 0; i < al.size(); i++) {System.out.print(al.get(i)+" ");}}
}
/*
5
Lily Jack Jim Mike Tom
Lily Jack Jim Mike Tom
*/

例:创建存储学生对象的集合,存储三个学生对象,遍历集合中的学生对象。

package com.xuexi.jiehefund;
//服务于ArrayListDemo4
public class Student {private String id;private String name;private int age;public Student() {}public Student(String id, String name, int age) {this.id = id;this.name = name;this.age = age;}/*** 获取* @return id*/public String getId() {return id;}/*** 设置* @param id*/public void setId(String id) {this.id = id;}/*** 获取* @return name*/public String getName() {return name;}/*** 设置* @param name*/public void setName(String name) {this.name = name;}/*** 获取* @return age*/public int getAge() {return age;}/*** 设置* @param age*/public void setAge(int age) {this.age = age;}public String toString() {return "Student{id = " + id + ", name = " + name + ", age = " + age + "}";}
}
package com.xuexi.jiehefund;
import java.util.ArrayList;
public class ArrayListDemo4 {public static void main(String[] args) {Student stu1=new Student("001","Mike",20);Student stu2=new Student("002","Jack",21);Student stu3=new Student();stu3.setId("003");stu3.setName("Jim");stu3.setAge(22);ArrayList<Student> alS=new ArrayList<>();alS.add(stu1);alS.add(stu2);alS.add(stu3);System.out.println(stu1);for (int i = 0; i < alS.size(); i++) {Student student = alS.get(i);System.out.println(student);}}
}
/*
Student{id = 001, name = Mike, age = 20}
Student{id = 002, name = Jack, age = 21}
Student{id = 003, name = Jim, age = 22}
说明:若注释Student类的toString方法,输出结果为地址
com.xuexi.jiehefund.Student@1540e19d
com.xuexi.jiehefund.Student@677327b6
com.xuexi.jiehefund.Student@14ae5a5
*/

变式:创建存储学生对象的集合,存储若干学生对象,键盘录入学生信息,并遍历集合。

package com.xuexi.jiehefund;
//服务于ArrayListDemo4
public class Student {private String id;private String name;private int age;public Student() {}public Student(String id, String name, int age) {this.id = id;this.name = name;this.age = age;}/*** 获取* @return id*/public String getId() {return id;}/*** 设置* @param id*/public void setId(String id) {this.id = id;}/*** 获取* @return name*/public String getName() {return name;}/*** 设置* @param name*/public void setName(String name) {this.name = name;}/*** 获取* @return age*/public int getAge() {return age;}/*** 设置* @param age*/public void setAge(int age) {this.age = age;}public String toString() {return "Student{id = " + id + ", name = " + name + ", age = " + age + "}";}
}
package com.xuexi.jiehefund;
import java.util.*;
public class ArrayListDemo4 {public static void main(String[] args) {Scanner input=new Scanner(System.in);int n=input.nextInt();ArrayList<Student> studentArrayList=new ArrayList<>();for (int i = 0; i < n; i++) {Student stu=new Student();String id=input.next();String name=input.next();int age=input.nextInt();stu.setId(id);stu.setName(name);stu.setAge(age);studentArrayList.add(stu);}for (int i = 0; i < studentArrayList.size(); i++) {System.out.println(studentArrayList.get(i));}}
}

四、案例:学生管理系统

package com.xuexi.jihefund;
//服务于StudentManageSystem
public class StudentInfo {private String id;private String name;private int age;private String city;public StudentInfo() {}public StudentInfo(String id, String name, int age, String city) {this.id = id;this.name = name;this.age = age;this.city = city;}/*** 获取* @return id*/public String getId() {return id;}/*** 设置* @param id*/public void setId(String id) {this.id = id;}/*** 获取* @return name*/public String getName() {return name;}/*** 设置* @param name*/public void setName(String name) {this.name = name;}/*** 获取* @return age*/public int getAge() {return age;}/*** 设置* @param age*/public void setAge(int age) {this.age = age;}/*** 获取* @return city*/public String getCity() {return city;}/*** 设置* @param city*/public void setCity(String city) {this.city = city;}public String toString() {return "StudentInfo{id = " + id + ", name = " + name + ", age = " + age + ", city = " + city + "}";}
}
package com.xuexi.jihefund;
import java.util.*;
public class StudentManageSystem {public static void main(String[] args) {ArrayList<StudentInfo> alStu=new ArrayList<>();Scanner input=new Scanner(System.in);System.out.println("---StudentManageSystem---");while(true){showPage();int choice=input.nextInt();switch (choice){case 1:AddStudentInfo(alStu, input);break;case 2:DeleteStudentInfo(alStu, input);break;case 3:UpdateStudentInfo(alStu, input);break;case 4:showStudentInfo(alStu);break;default:System.exit(0);//终止正在运行的JVM虚拟机}}}public static boolean checkIfExist(String id,ArrayList<StudentInfo> alStu){for (int i = 0; i < alStu.size(); i++) {if(alStu.get(i).getId().equals(id))return true;}return false;}public static void AddStudentInfo(ArrayList<StudentInfo> alStu, Scanner input) {StudentInfo stu=new StudentInfo();input.useDelimiter("\n");System.out.print("Input ID:");String id=input.next();while(checkIfExist(id,alStu)){System.out.print("ID clash.Enter ID:");id=input.next();}System.out.print("Input name:");String name=input.next();System.out.print("Input age:");int age=input.nextInt();System.out.print("Input city:");String city=input.next();stu.setId(id);stu.setName(name);stu.setAge(age);stu.setCity(city);alStu.add(stu);}public static void showPage() {System.out.println("1 Add");System.out.println("2 Delete");System.out.println("3 Update");System.out.println("4 Select");System.out.println("else Exit");}public static void DeleteStudentInfo(ArrayList<StudentInfo> alStu,Scanner input){System.out.print("Input ID you want to delete:");String DeId=input.next();while(!checkIfExist(DeId,alStu)){System.out.print("ID do not exist.Enter ID:");DeId=input.next();}for (int i = 0; i < alStu.size(); i++) {if (DeId.equals(alStu.get(i).getId())) {alStu.remove(i);break;}}}public static void UpdateStudentInfo(ArrayList<StudentInfo> alStu,Scanner input){System.out.print("Input ID you want to update:");String DeId=input.next();while(!checkIfExist(DeId,alStu)){System.out.print("ID do not exist.Enter ID:");DeId=input.next();}for (int i = 0; i < alStu.size(); i++) {if(DeId.equals(alStu.get(i).getId())){System.out.print("Input ID:");String new_id=input.next();while (checkIfExist(new_id,alStu)){System.out.print("ID clash.Enter ID:");new_id=input.next();}alStu.get(i).setId(new_id);System.out.print("Input name:");String new_name=input.next();alStu.get(i).setName(new_name);System.out.print("Input age:");int new_age=input.nextInt();alStu.get(i).setAge(new_age);System.out.print("Input City:");String new_city=input.next();alStu.get(i).setCity(new_city);break;}}}public static void showStudentInfo(ArrayList<StudentInfo> alStu){if (alStu.size()==0)System.out.println("List is Empty!");for (int i = 0; i < alStu.size(); i++) {System.out.println(alStu.get(i).toString());}}
}
---StudentManageSystem---
1 Add
2 Delete
3 Update
4 Select
else Exit
1
Input ID:19230334
Input name:Jack
Input age:20
Input city:BeiJing
1 Add
2 Delete
3 Update
4 Select
else Exit
1
Input ID:19230337
Input name:Lucy
Input age:19
Input city:WuHan
1 Add
2 Delete
3 Update
4 Select
else Exit
1
Input ID:19230322
Input name:Wayne
Input age:22
Input city:ChongQing
1 Add
2 Delete
3 Update
4 Select
else Exit
1
Input ID:19230339
Input name:Jim
Input age:18
Input city:ShangHai
1 Add
2 Delete
3 Update
4 Select
else Exit
4
StudentInfo{id = 19230334, name = Jack, age = 20, city = BeiJing}
StudentInfo{id = 19230337, name = Lucy, age = 19, city = WuHan}
StudentInfo{id = 19230322, name = Wayne, age = 22, city = ChongQing}
StudentInfo{id = 19230339, name = Jim, age = 18, city = ShangHai}
1 Add
2 Delete
3 Update
4 Select
else Exit
2
Input ID you want to delete:19230340
ID do not exist.Enter ID:19230322
1 Add
2 Delete
3 Update
4 Select
else Exit
4
StudentInfo{id = 19230334, name = Jack, age = 20, city = BeiJing}
StudentInfo{id = 19230337, name = Lucy, age = 19, city = WuHan}
StudentInfo{id = 19230339, name = Jim, age = 18, city = ShangHai}
1 Add
2 Delete
3 Update
4 Select
else Exit
3
Input ID you want to update:19230340
ID do not exist.Enter ID:19230337
Input ID:19230339
ID clash.Enter ID:19230334
ID clash.Enter ID:19230338
Input name:Lily
Input age:21
Input City:GuangZhou
1 Add
2 Delete
3 Update
4 Select
else Exit
4
StudentInfo{id = 19230334, name = Jack, age = 20, city = BeiJing}
StudentInfo{id = 19230338, name = Lily, age = 21, city = GuangZhou}
StudentInfo{id = 19230339, name = Jim, age = 18, city = ShangHai}
1 Add
2 Delete
3 Update
4 Select
else Exit
0

第二章 Java的面向对象进阶(上)相关推荐

  1. 使用java实现面向对象编程第二章_java面向对象编程——第二章 java基础语法

    第二章 java基础语法 1.java关键字 abstract boolean break byte case catch char class const continue default do d ...

  2. (Java零基础学习笔记)第二章 Java中的基本语法

    前言: 大家好! 我是BA unravel .如果你想和我一起学习JAVA,欢迎大家一起来学习这个世界上最好的语言! 学习目标: 一周掌握 Java 入门知识 学习内容: 1. 搭建 Java 开发环 ...

  3. 描述java源程序构成_Java第二章Java程序设计

    <Java第二章Java程序设计>由会员分享,可在线阅读,更多相关<Java第二章Java程序设计(140页珍藏版)>请在人人文库网上搜索. 1.第2章 Java基本语法,2. ...

  4. java 计数器越界,[总结]-第二章 Java内存区域与内存溢出异常

    [总结]-第二章 Java内存区域与内存溢出异常 一.知识点 1.虚拟机运行时数据区 方法区:运行时常量池(JDK1.7被移出) 堆:存放对象实例或数组.新生代和老年代 虚拟机栈:线程私有.栈 本地方 ...

  5. java 3D 第二章 java 3D基本概念

    java 3D 第二章 java 3D基本概念 java 3D基本概念 java 3D的包及其功能 java 3D 高分辨率大尺度坐标 Java 3D场景图(Scene Graph) VirtualU ...

  6. 进击 !!第二章 JAVA编程基础

    第二章 JAVA编程基础 目标: 掌握java的基本语法,常量,变量,流程控制语句,方法以及数组 运用java运算符的使用 了解java代码的基本格式 2.1java 的基本语法 1. 代码的基本格式 ...

  7. 【JAVA SE】第二章 Java语法基础、数据类型、基本类型的字面值、基本类型的类型转换和运算规则

    第二章 Java语法基础.数据类型.基本类型的字面值.基本类型的类型转换.运算规则和标识符命名风格 文章目录 第二章 Java语法基础.数据类型.基本类型的字面值.基本类型的类型转换.运算规则和标识符 ...

  8. 第二章 java常用开发工具以及程序的编写

    2019独角兽企业重金招聘Python工程师标准>>> 第二章 java常用开发工具以及程序的编写 1. 程序的概念         2. java程序的开发的三个步骤        ...

  9. java语言定义一个具备栈功能的类_Java学习笔记 第二章 Java语言基础

    第二章 JAVA语言基础 一.关键字 1.关键字的定义和特点 定义:被Java语言赋予了特殊含义的单词 特点:关键字中所有的字母都为小写 2.用于定义数据类型的关键字 c;ass  interface ...

最新文章

  1. eclipse中egit插件使用
  2. 最牛逼的核心框架,没有之一!
  3. html的div的儿子,当父母的身高是动态时,孩子div为100% HTML / CSS
  4. 在Hue中创建一个Oozie工作流
  5. 烦人的Facebook分享授权
  6. NYOJ2括号配对问题
  7. 微生物 研究_微生物监测如何工作,为何如此重要
  8. 2015总结及2016计划
  9. mysql语句面试题_mysql的sql面试题(1)
  10. LeetCode 279. Perfect Squares
  11. 用TestComplete实现一个关键字驱动测试框架
  12. 360加速球效果实现
  13. excel各种填充的总结
  14. InfoPath 2007/2010 Helper Tool
  15. 问题记录之---nginx temp文件夹
  16. Simon Game实现过程记录
  17. 华为应用市场2021年度安全隐私报告发布:护航应用安全是场“持久战”
  18. Pandas 学习手册中文第二版:1~5
  19. poj3253切割木板(哈夫曼树) 贪心【优先队列】
  20. GDUT 2.25 D

热门文章

  1. 学习java要经常溜达的网站
  2. 机器学习:欧氏距离(Euclidean Distance)
  3. 量化投资算法交易设计
  4. 传智播客 刘意_2015年Java基础视频-深入浅出精华版 笔记(day01~day10)(2015年11月17日20:51:59)
  5. 《初级会计实务》考试学习分享之第一章 ——会计概述(下)【考试大纲】
  6. element ui Tag 动态添加标签
  7. 程序员每天需要多少代码量
  8. 【日常小问题1】U盘写入速度变慢的解决方法(适用于win10)
  9. 区块链技术助力甘肃建食安信息追溯平台 为食品安全“立规矩”
  10. 看板管理大型项目-4-5.项目看板