java SE:标准版
java EE:企业版
java类名和文件名需要一致
idea导入模块:
导入模块的iml文件(导入模块的位置不会改变) / 新建模块复制
删除模块:
在idea中先remove模块,再从文件夹中删除
注释单行注释://
多行注释:
文档注释:
键盘录入Scanner sc = new Scanner(System.in); //等待用户输入数据直到按下回车 int age = sc.nextInt(); String name = sc.next();switch
switch(表达式){
case 值1:
执行代码;
break;
...
default:
执行代码;
}
数组
int[] ages = new int[]{...}
int[] arr = new int[3]; //默认值初始全为0
方法
public static void printhello()
{
System.out.println("hello");
}
封装
原则:对象代表什么,就得封装对应的数据,并提供数据对应的行为
使用get和set函数来存取数据
成员变量使用private
提供无参数构造器,有参数构造器可选
类中右键,选择generate,选择Getter and Setter,按住shift鼠标选择,再确认,可自动生成get和set函数
类中右键,选择generate,选择Constructor,按住shift鼠标选择,再确认,可自动生成有参构造函数
面试题String s2 = new String("abc")
上面的代码中创建了两个对象
String s1 = "abc"; String s2 = "ab"; String s3 = s2 + "c"; //s1 != s3 String s1 = "abc"; String s2 = 'a'+'b'+'c'; //s1 == s2字符串
比较内容是否相等: s1.equals(s2);
比较内容是否相等(忽略大小写): s1.equalsIgnoreCase(s2);
字符串长度: s1.length();
获取某个索引处的字符: c = s1.charAt(int index);
把字符串转成数组: char[] chars = s1.toCharArray();
截取内容(取前不取后): s3 = s1.substring(int begin,int end);
替换: s3 = s1.replace(target_String, replacement);
是否包含: s1.contains(“…”);
按照某个内容把字符串分割成字符串数组返回: String[] s3 = s1.split(“,”);
手机号码屏蔽159****7839
Scanner sc = new Scanner(System.in); //等待用户输入数据直到按下回车 String tel = sc.next(); //截取前三位和后四位 String before = tel.substring(0,3); String after = tel.substring(7); String s = before+"****"+after;集合
ArrayList list = new ArrayList();
list.add("abc");
list.add(123);
...
list.add(index,element);
ArrayList list = new ArrayList();
ArrayList list2 = new ArrayList();
list.get(int index);//获取某个索引的元素值
list.size();//获取集合长度
String e = list.remove(int index);//删除元素值并返回
list.remove(Object o);//删除元素值(第一个出现的),返回true,false
//遍历删除的时候需要在删除后将下标往前退一,防止跳过
//或者从后向前遍历删除
list.set(index,element);//修改元素值,返回被修改的元素
static
静态成员变量,对该类的所有对象共享,通常用 类名.静态成员变量 访问
同样可以作用于静态成员方法
实例方法只能用对象访问,静态成员方法可以用类访问
static方法中不能直接调用非静态变量,实例方法可以调用非静态和静态变量
public class Student {
private String name;
private static int age;
public Student() {}
public Student(String name) {
this.name = name;
}
public static void study(Student s){
System.out.println(s.name + age);
}
public static void main(String[] args) {
Student s = new Student();
s.name = "hello";
s.age = 9;
s.study(s); //这样可以调用对象的非静态变量
}
}
静态方法中不能用this关键字



