Java基础

Java三大特性:封装,继承,多态
封装:将同一事物的属性与方法操作封装到一个类,实现高内聚与低耦合。
继承:子类继承父类的内容,还可以添加新内容和修改父类继承的内容来适应特定场合,提高程序的可重用性与可扩张性。
多态:同一个行为或方法具有不同的表现形式或形态的能力。方法重载(编译时多态),方法重写(运行时多态)
基本类型:
byte Byte 1字节
char Character 2字节
short Short 2字节
int Integer 4字节
float Float 4字节
long Long 8字节
double Double 8字节
String类
String不可变的好处:jdk8的String内部使用private final char value[]存值。好处:
1,天生的线程安全
2,经常作为hashmap的key,使得key的hash值也不可变
3,作为网络连接的参数,提高安全性
String创建流程
String s1 = new String(“123”),首先在类加载解析阶段,创建123常量放入常量池,然后运行时在堆上创建new的String对象。
equals与==
==用于基本类型,比较的是值,引用类型比较的是引用地址。
equals,内部首先用双等号判断相等则返回,然后在判断是否是String对象,之后再使用value[]挨个对应比较。
String,不可变,线程安全,StringBuffer,可变,线程安全,StringBuilder可变,线程不安全
intern(),将String的字面值添加到String常量池中。
泛型
产生原因:起初是为了解决容器存对象,类型模糊的问题
第二个原因:编写出能操作泛型的泛化代码,使得代码更加泛化。
使用场景:泛型类,泛型方法
类型擦除:Java的泛型是伪泛型,只存在编译期,运行时会被擦除为原始类型,若有限定类型,则为限定类型。
java泛型擦除的补偿:Java反射
容器(集合)
集合:Collection:List,Set,Queue,键值对:Map
List:ArrayList,LinkedList,Vector
Set:hashset,treeset,linkedhashset
Queue:linkedlist,priorityQueue,各种用于并发的阻塞队列
arraylist与linkedlist:一个基于数组实现,一个基于链表实现,数组便于随机访问,但增删开销大;链表随机访问取决于链表大小,增删容易。
Collections包常用方法:add,addAll,clear,contain,containAll,isEmpty,iterator,remove,removeAll,retainAll(交集运算),size
Arrays包方法:asList(底层任是数组实现,无法动态增长)
Iterator:hasnext,next,remove;listIterator:hashNext,hasPrevious,next,previous,nextIndex,previousIndex,remove
Comperable:一般tree相关的需要实现保持顺序,hash相关的要求实现hashcode
并发(多线程)
新建线程:继承Thread类,实现Runable接口,实现Callable接口。两个接口的区别:Runable没有返回值,Callable有Futrue对象的返回值,使用Excutor调用时,Runable可以使用excute/submit执行,Callable只能使用submit执行。
线程状态:新建,就绪,阻塞,死亡
常用方法:Thread自带:sleep,join,yeild,interupted,setDaemon,isDaemoned,isInterupted;Object自带:wait,notify,notifyAll
线程同步:使用synchronized锁方法,代码块,类;使用lock
线程通信:
1.使用同一个共享变量(synchronized,wait,notify,notifyAll,lock,condition);
2.volatile修饰或原子类;
3.blockingQueue;
4.管道对象pipedInputStream/pipedOutputStream,pipedReader/pipedWriter。
死锁条件:资源互斥;多个任务,每个至少需要两个资源;资源非抢占;循环等待
Concurrent并发包(线程池,各种锁,阻塞队列,新构件)
Excutor:三种线程池:CachedThreadPool;SingleThreadPool;FixedThreadPool。执行方法:excute,submit。终止:shutdown
Lodk:ReentrantLock,ReentrantReadWriteLock,CountDownLatch,Semphere,CyclicBarrier,DelayQueue,PriorityBlockQueue,ScheduledExecutor,Exchanger
JVM知识点
HashMap知识点(草稿)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值