Java基础总结(学习笔记)

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的实例对象

 

 

 

  • 13
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值