java概念与工具类


java基础与概念:

1.什么是面向对象?

面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个问题的步骤中的行为。面向对象技术是一种以对象为基础,以事件或消息来驱动对象执行处理的程序设计技术,它具有抽象性、封装性、继承性、多态性。

什么是面向过程?

面向过程是分析出解决问题所需要的步骤,然后把这些步骤一步一步实现,使用的时候一个一个一次调用即可。将函数与函数操作的数据进行分离,面向对象对于数据和数据的操作进行了封装。

什么是多态?

同一操作作用于不同的对象,可以有不同的解释,产生不同的结果,多态的前提是继承和方法的重写。实质是父类引用指向子类对象。

使用多态:封装隐藏了实现的细节,使得代码模块化,继承可以扩展已经存在的类/模块,使得代码重用,多态增加代码的重用且一定程度解决软件模块之间的紧耦合,提高扩展性

多态的好处:提高程序复用性、提高可扩充性和可维护性

什么是继承?

描述的是事物之间的所属关系,通过继承可以使得事物之间形成一种关系体系

类的继承是指在一个现有的类的基础上构建一个新的类,构建出来的类称之为子类,现有的类称之为父类,子类会自动拥有父类除了私有的方法之外所有可继承的属性和方法

继承的好处:提高了代码的复用性,提高软件开发的效率;

什么是封装?

封装将类的某些信息隐藏在类的内部,不允许外部程序直接访问,只能通过该类提供的方法来实现对隐藏信息的操作和访问。

小结:

总结封装、继承、多态的作用:
1.封装:把对象的属性与方法的实现细节隐藏,仅对外提供一些公共的访问方式
2.继承:子类会自动拥有父类所有可继承的属性和方法
3.多态:配合继承与方法重写提高了代码的复用与扩展;如果没有方法重写,则多态同样没有意义

java中的基本数据类型(4类8种)

四类 八种 字节数 数据表示范围
整型 byte 1 -128~127
short 2 -32768~32767
int 4 -2147486348~2147483648
long 8 -2^65~2^65-1
浮点数 float 4 -3.403E38~3.403E38
double 8 -1.798E308~1.798E308
字符型 char 2 表示一个字符,’a’
布尔型 boolean 1 false或者true

如果使用long类型的数据必须在后缀添加L字符,小数不加后缀默认double类型

数据类型范围:

byte -> short -> int -> long -> float -> double

数据类型小的能够转换成数据类型大的,数据类型大的不能直接转换成类型小的数据

常见的字符的Ascii编码:

数字0-9对应ASCII编码十进制为48-57,

字母a-z对应ASCII编码十进制为97-122

字母A-Z对应ASCII编码十进制为65-90

访问修饰符:

public protected default private
所有类 *
不同包的类的子类 * *
同一包中 * * *
同一类中 * * * *

常用类:

System类

currentTimeMillis();方法,用于记录系统当前时间的毫秒值

exit(int status);终止正在运行的java程序

gc()用来运行jvm中垃圾回收器,完成内存中垃圾的清除

getProperty(String key)用来获取指定键中所记录的系统属性信息

arraycopy方法,用来实现将源数组部分元素复制到目标数组的指定位置

arraycopy(int[] a,int index1 ,int[] b,int index2,int num);分别表示a数组中index1位置的元素复制到b数组中index2位置开始的位置,复制num个元素

Math类:

1.ceil方法,结果为比参数值大的最小整数的double值;

例如:Math.ceil(3.3); //d1的值为 4.0;Math.ceil(-3.3); //d2的值为 -3.0

2.floor方法,结果为比参数值小的最大整数的double值

例如:Math.floor(3.2);结果为3.0;Math.floor(-3.3);结果为-4.0

3.pow方法,返回第一个参数的第二个参数次幂的值

例如:Math.pow(2.0,3.0);值为8.0

4.round方法:返回参数值四舍五入的结果

例如:Math.round(5.5);结果为6.0 Math.round(5.4)结果为5.0

Arrays类:

binarySearch(int[] a,int key);二分搜索法来对指定的数组获取指定的值

sort方法,用来对指定数组中的元素进行排序(元素值从小到大进行排序)

BigInteger类:

构造方法有:

BigInteget(byte[] val);

BigInteger(int signum,byte[] magnitude);

BigInteger(int bitLength,int Certainty,Random rnd);

BigInteger(int numBits,Random rnd);BigInteger(String val);

BigInteger(String val,int tadix)

a.add(BigInteger b);将两个大整数相加

a.subtract(BigInteger b);将两个大整数相减

a.multiply(BigInteger b);将两个大整数相乘

a.divide(BigInteger b);将两个大整数相除

BigDecimal类

常用的构造函数BigDecimal(String num)

建议浮点数据以字符串形式给出,因为参数结果是可以预知的

除法需要设置精度与保留位数

bigDecimal.divide(BigDecimal bigDecimal2,int scale,int roundModel);

集合类(Collection集合、List集合、Set集合、Map集合)

Collection集合是一个接口,其实现有List集合和Set集合

List接口,是一个元素存取有序的、带有索引的集合,集合中可以存储重复的元素。

List接口实现的子类有ArrayList集合和LinkedList集合

​ ArrayList集合存储的数据结构是数组结构,元素增删慢,查找快

​ LinkedList集合存储数据的数据结构是链表,方便元素添加删除的集合

​ Vector集合:数据存储的结构是数组结构,Vector中提供一个独特的取出方式,就是枚举Enumeration,早期的迭代器

Set集合接口:setz中不能存放重复的元素,并且元素没有顺序,通过equals来判断元素是否重复

HashSet集合采用哈希表结构存储数据,保证元素唯一性的方式依赖于hashCode和equals方法。哈希表底层也是使用数组,数组也存放对象,而对象的位置比较特殊,当需要把这些对象存放在数组中时,会根据这些对象的特有数据结合相应的算法,计算这个对象在数组中的位置,然后把这个对象存放在对象数组中,称之为哈希表。

使用hashCode来判断对象存储的位置,使用equals判断两个对象是否为同一个对象

HashSet保证元素唯一,可是元素存放进去是没有顺序的,那么我们要保证有序可以使用HashSet的子类LinkedHashSet,它是链表和哈希表组合的一个数据存储结构。

Map接口:存储的元素是成对存在的,每个元素有键和值两部分组成,通过键找到对应的值。

map中不能包含重复的键,值可以重复,每个键只能对应一个值。常用的集合HashMap和LinkedHashMap集合。

HashMap<K,V>存储采用的是哈希表结构,元素存取顺序不保证一致,为了保证键的唯一不重复,需要重写键的hashCode和equals方法

LinkedHashMap:采用哈希表结构+链表结构,通过链表结构保证元素存取顺序一致,通过哈希表结构保证键的唯一、不重复。

Entry键值对对象:

Entry将键值对的对应关系封装成了对象,在遍历map时可以单独的获取kay或者value

Map集合不能直接使用迭代器,将其转换成set集合然后使用迭代器遍历元素。

Collectiions集合工具类:常用的部分方法有:

Collections.sort(list); // 集合元素排序

Collections.shuffle(list);// 集合元素存储位置打乱

接口与抽象类:

1.抽象类:

抽象类使用abstract修饰

抽象类不能使用new关键字来实例化对象

抽象类可以有抽象方法,抽象类也可以有具体的方法

抽象类中的抽象方法只有方法体

2.接口:

接口使用interface修饰

接口不能实例化

一个类只能继承一个抽象类,但是可以实现多个接口

接口中的方法为抽象方法,jdk1.8对接口进行增强,使用default关键字,可以使得接口中对方法实现

异常(异常分类,如何使用,如何自定义异常)

IO(File类、字符流、字节流、文件上传与下载、读取excel,txt)


文章作者: it星
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 it星 !
 上一篇
pddl规划 pddl规划
it星
角括号<> 表述名字 圆括号()元素名字 方括号[]围绕着option An asterisk(*)means “zero or more of” a plus(+)means“one or more of” 规划系统是问题求解
2020-04-30
下一篇 
spring学习笔记 spring学习笔记
Spring学习笔记 1.IOC的概念:全称是Inversion of Contorl叫做控制反转,和依赖注入概念等同,思想是不需要自己去创建对象,让IOC创建好拿来。 主要是通过引入中间代理消除对象间复杂的耦合关系,并统一管理分散的复杂
  目录