1.Java语言是跨平台的,程序由jvm来执行,不是直接由操作系统来执行。
Java语言是面向对象的语言,编程的最基本单元是class类,类里面可以写成员变量或者直接赋初值,成员方法,构造方法。
类一般都别的类中使用,用来构造一个对象以便于封装具体的数据,以及在这个对象上调用其方法。
//main方法是由jvm来调用的
2.逻辑控制语法:
if else、for、while、switch case
3.常用工具类的使用
(1)Scanner:用来从终端上获取用户输入的信息
Scanner sc = new Scanner();
String line = sc.nextLine();
(2)Integer:是int数据的包装类,用来操作整数
int a = 5;
Integer ainteger = new Integer(5);
//将一个阿拉伯字符解析成一个整数
int m = Integer.parseInt("98");
int max = Integer.Max;
(3)String:用来封装一串字符,同时也提供了大量的工具方法
String a = "xxx,xx,xxx,xx";
String [] split = a.split(",");//切割字符串
String s = a.subString(0,5);//截取子串
String u = a.toUpperCase();//转换成大写
(4)Array类ArrayList<Object>
ArrayList<String> sList = new ArrayList<String>();
sList.add("xx");
String s = sList.get(2);
(5)hashSet<>
HashSet<String> set = new HashSet<>();
set.add("a");
//从set中拿数据
Iterator it = set.iterator();
while(it.hasNext()){
String ele = it.next();
sysout(ele);}
(6)HashMap<>
HashMap<String,Integer> map = new HashMap<>();
map.put("a",1);
//取数据
Integer value = map.get("a");
//判断是否包含指定的key
boolean ex = map.containsKey("d");
//删除指定的数据
map.remove("c");
//遍历整个map的所有数据
方法1:先获取所有的key,然后根据key去map中取value
Set<String> keySet = map.keySet();
for(String key:keySet){
Integer value = map.get(key);
System.out.println(key+","+value);}
方法2:先获取所有Entry<String,Integer>
Set<Entry<String,Integer>> entrySet = map.entrySet();
for(Entry<String,Integer> ent:entrySet){
sysout(ent.getKey()+","+ent.getValue());}
(7)接口:用来在模块之间调用时定义功能规范,使得模块之间解耦合、分模块开发变得更为可靠
public interface Userervice{
public user findUserById(String id){
业务逻辑 }
}
//额外补充,类的加载过程和对象的构造过程
jvm在为一个类构造对象时所要进行的工作:
首先在这个类的加载过程中执行静态代码,如果有多份静态代码则从上往下顺序执行;
然后执行普通代码块;
然后再执行构造方法//
4.外部不知道该如何去一个数据结构中取数据,该数据结构一般会提供一个迭代器来为用户取数据
Iterator<String> iterator = set1.iterator;
while(iterator.hasNext)){
String next = iterator.next();
System.out.println(next);}
5.泛型参数的应用是属于Java的高级语法,用于开发框架,平常开发几乎用不上
泛型就是用来代表一个类型名的参数,使用方法如下:
public class SortUtil<T>{
public void sort(ArrayList<T> list){
}}//带泛型的类,在使用时就需要传递泛型参数值(具体类型名);
main{
SortUtil<User> sortUtil = new SortUtil<>();
6.Collection工具的排序使用
使用方式:需要排序的List<User>和list中的数据类型User的比较器传给框架来排序;
Collections.sort(uList,new Comparator<User>(){
public int commpare(User o1,User o2){
if(o1.getSalary>o2.getSalary){
return 1;}
.........
使用方法2:将需要排序的List<User>传递给框架即可,不需要传比较器,前提是数据类User本身要带一个CompareTo方法
public int compareTo(User o2){
if(this.getSalary > o2.getSalary){
return 1;}
......................
7.DataInputStream可以帮用户从文件流中直接取出用户需要的数据readInt()、readLong()等等
DataOutputStream可以帮用户把各种Java类型数据转写成二进制写入文件流writeInt()等
8.对象流的使用
ObjectOutputStream可以帮用户直接把一个对象写入文件流或者网络流,必要前提是该Java对象的类型必须实现serializable接口
ObjectInputStream可以帮用户从文件流或者网络流中直接读取出一个Java对象
DataOutputStream是一个包装流,它可以将各种类型的数据在内部转成Byte字节,然后用FileOutputStream写入文件
DataOutputStream dos = new DataOutputStream(new FileOutputStream("d:/XX.txt);
dos.writeInt(34);
dos.writelong(19999);
DataInputStream dis = new DataInputStream(new FileOutputStream("d:/XX.txt);
dis.readInt(34);
9.反射
反射的基本机制是可以根据一个“类全名字符串”,获得代表 这个类的class对象,然后根据这个class对象构造出这个类的真正实例对象。
String className = "cn.edu360.javase24.reflect.demo.ServiceOne";
Class<?> forName = class.forName(className);//根据类名字符串获取class对象
ServiceOne o = (ServiceOne) forName.newInstance();//用class对象构造出这个类ServiceOne的实例对象