首页 > 编程语言 > 详细

java基础

时间:2019-08-03 18:02:46      阅读:69      评论:0      收藏:0      [点我收藏+]

数据类型:

byte   1字节

shotr  2

int      4

long    8

char    2

float    4

double 8

boolean 1

 面向对象特性

封装 :将对象实现细节隐藏起来,通过公共方法向外暴露对象功能

继承:子类继承父类,直接或间接获取父类的成员

多态:直接把子类赋值给父类变量,但是运行时依然表现出子类的行为特征

抽象:从已经存在的事物中抽象出所关注的行为,特性。

 

 重载:同一类中,方法名相同,参数列表不同

 重写:继承父类,方法及签名相同   ,@Override标签判断

 

  基本类型和包装类型:

基本类型:默认值为0   存在于 栈

包装类型:默认值 null,对象  存在于 堆

集合中只能存储对象

 

抽象类和接口:

抽象类:不能创建实例,无方法体,子类实现,可包含抽象方法  普通方法   构造方法

接口:是一种规范,N中方法的特征集合,无构造方法  可包含抽象方法

类之间是单继承关系    接口和实现类  实现关系

抽象用于  某些相同事物概念(相同属性)的抽取, 使用抽象类是为了代码的复用

接口是为了实现多态性(特性,行为)

数组:存储相同类型的集合

 

设计模式

享元模式:共享同一元素,常量池中

单例模式:暴露对外方法

责任链模式:单独开发

适配器模式:接口和抽象类

stringbuffer(安全)、stringbuilder(不安全)

 

集合分为 colletion 和map(双序)

技术分享图片

 

collection:

List:arrarylist 、linkedlist、vector(安全的)(有序,可重复)  

set:hashset、treeset (无序,不重复)

map:hashmap(数组+链表结构,可存null)、treemap,hashtable(安全的)(key-value)

 

arrarylist  动态数组    效率高   查询快,增删慢,默认大小10,插入数据,判断大小,改变内存存储

linnkedlist:链表结构  查询慢,增删快,首尾连接

 

hashset去重原理:通过hashcode找到对应hash值,通过运算找到该元素的在hash表的存储位置,

如果目前没有任何元素存储,则直接存储,若已存在其他元素,调用equals判断比较,若是ture,则重复,不允许添加,false则添加

 

 

遍历map:四种

获取key  value :entryset

通过key  获取value

单独获取 ketset

迭代器遍历  entryse().iterator

 

 常用类: string、until、math、date、sql

 常见异常: 数组下标越界 空指针   io异常  算数异常   类转换异常  文件找不到异常   类找不到异常

 

 

数据库:左右链接,内连接,索引   explain 判断索引

索引   :explain查看是否有索引    index(不重复索引)  ref()

事务:

原子性:要么发生   要么不发生

一致性:保证数据的完整性

隔离性:每一位用户的事务不被干扰

持久性:一旦改变  保持永久

 

悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁  ,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁       插入  写  场景

乐观锁:总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号机制和CAS算法实现。乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库提供的类似于write_condition机制,其实都是提供的乐观锁。在Java中java.util.concurrent.atomic包下面的原子变量类就是使用了乐观锁的一种实现方式CAS实现的。 一种版本号机制      读场景

 

 

死锁:多个进程抢夺资源造成的

原因:

互斥条件:一段时间内,某资源仅为一进程占有

请求和保持条件:请求资源阻塞时,对已获得资源不放

不剥夺条件:进程已获得资源未使用完时,不能剥夺,自动释放

环路等待条件:存在环形连

 

实现多线程:根据返回值 分为两大类

一类:继承Thread和实现Runnable ,

二类:实现Callable重写call()传给FutureTask对象,最大的不同是Callable能返回一个异步处理的结果Future对象并能抛出异常

 

java基础

原文:https://www.cnblogs.com/upward/p/11295510.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!