java基础学习01

java的数据类型:
一、基本类型:
整数:
    byte     1字节   1 111 1111 第一位0为正1为负,所以最大为2^7-1 为0111 1111 最小值:1000 0000 -2^7
    short       2     -2^15 2^15-1
    int        4         -2^31 2^31-1
    long     8
浮点型:
     float     4     1 8指数 -127~128 23尾数
    double    8     1 11指数 52尾数
字符型:
     char 2
真假:
     boolean 1
 
注:浮点型计算:
BigDecimal a=new BigDecimal("0.1");
BigDecimal b=new BigDecimal("0.2");
System.out.println(a.add(b));
需要转换成字符类型进行计算
二、引用类型:
数组
接口
 
如果调用方法的时候参数是基本类型则传递的是数值,如果参数是引用类型则传递的是指向堆区中的内存地址
 
拼接字符串:
StringBuffer buffer = new StringBuffer("a");
buffer.append("b");
buffer.append("c");
System.out.println(buffer.toString());
 
StringBuilder使用与上相同
StringBuilder:非线程安全 单线程使用
StringBuffer: 线程安全 每个方法都有锁,保证每次只有一个线程拼接字符串,防止多线程拼接出现问题 多线程使用
字符串比较:
String a = new String("abcd");
String b = new String("abcd");
System.out.println(a.equals(b));
 
数组:
- - - - 在堆中创建出一个连续的内存空间
对象指向到内存空间的第一个位置
int[] arr = new int[5];
arr[0]
 
ArrayList arrayList = new ArrayList<>();
首部添加较慢,尾部添加和LinkedList一样快,取数据较快,所以用的较多
扩容标准:扩容后的长度为原长度*1.5,如果新加的长度大于扩容后的,则取新加的长度。
 
 
LinkedList linkedList = new LinkedList<>();
LinkedList没有容量,只记录队首和队尾
首部添加速度优于ArrayList,尾部添加差不多,但是取数据相对较慢
 
Date start = new Date() :获取当前时间
 
Hashtable:
方法都有synchronized,有锁,所以线程安全,不允许有空指针
 
 
Hashmap:
非线程安全,允许空指针作为key
 
 
 
多线程:
进程:一个进行至少有一个线程
线程:进程的一个执行过程
实现多线程:
1.继承Thread类
2.实现runnable接口
无论用上述哪种方式,都必须要重写run方法
调用的时候必须调用start()方法才能以线程的方式启动
3.线程池
 
 
接口和抽象类的区别:
  构造方法 成员变量 非抽象方法 抽象方法 非抽象方法    
接口 ×    
抽象类    
 
接口中成员变量只能用static和final修饰为常量,不写值也不能变,无法修改
接口可以new但不能实例化,可以创建匿名内部类
接口在1.8之前不可以有非抽象方法,1.8后可以用default实现非抽象方法。
 
javabean bean model pojp -------数据模型
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
原文地址:https://www.cnblogs.com/369529506panyue/p/13939533.html