Java学习笔记(1)

程序研发

程序研发的过程

在我们正式的写代码之前,我们作为java的学习者,或者说是计算机专业的学习者,首先要有计算机的思维,写程序代码两到三年,研发则要3年以后,必须要有自己的逻辑思维能力:

  1. 首先是思维导图,和需求分析书
  2. 清楚数据来源
  3. 清楚数据保存在何处;

程序的结构

  1. dao层:接口层,软件与数据库的桥梁,采集数据、保存数据都是在dao层操作。
  2. Service层:界面的桥梁,基本为借口和实现体,与用户打交道。
  3. Ui:用户真正操作的页面;
  4. Util:封装,将一些可能多次用到的功能,比如添加一个用户,取出ID等等,可以将其封装。

集合的使用

泛型

什么是泛型?为什么要使用泛型?
泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。

泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。
eg:List arrayList = new ArrayList();

迭代器

Iterator迭代器:起到遍历,从集合中取出自己想要的东西。
所有的集合类,都实现了Iterator接口,这是一个用于遍历集合中元素的接口,主要包含以下三种方法:
1.hasNext()是否还有下一个元素。
2.next()返回下一个元素。
3.remove()删除当前元素。

数组

数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。

Map集合

集合(储存对象,但对象的类型可以变)长度可变,大多数情况可以使用。
Map:包含HashMap和TreeMap,是Java.util包中的另一个接口,Map包含了key-value对。Map不能包含重复的key,但是可以包含相同的value。对map集合遍历时先得到键的set集合,对set集合进行遍历,得到相应的值。

向Map集合添加数据:V put(K key, V value) (可以相同的key值,但是添加的value值会覆盖前面的,返回值是前一个,如果没有就返回null)
删除:remove() 删除关联对象,指定key对象,clear() 清空集合对象。
获取:value get(key) 可以用于判断键是否存在的情况。当指定的键不存在的时候,返回的是null。
判断
boolean isEmpty() 长度为0返回true否则false

boolean containsKey(Object key) 判断集合中是否包含指定的key

boolean containsValue(Object value) 判断集合中是否包含指定的value
长度:int size()

List

List:ArrayList;LinkedList;
ArrayList:ArrayList是基于数组的,在初始化ArrayList时,会构建空数组(Object[] elementData={})。ArrayList是一个无序的,它是按照添加的先后顺序排列,当然,他也提供了sort方法,如果需要对ArrayList进行排序,只需要调用这个方法,提供Comparator比较器即可。
ADD操作:对于添加,如果不指定下标,就直接添加到数组后面,不涉及元素的移动,如果要添加到某个特定的位置,那需要将这个位置开始的元素往后挪一个位置,然后再对这个位置设置。

Remove操作:
1)remove(int index):首先需要检查Index是否在合理的范围内。其次再调用System.arraycopy将index之后的元素向前移动。

2)remove(Object o):首先遍历数组,获取第一个相同的元素,获取该元素的下标。其次再调用System.arraycopy将index之后的元素向前移动。

List的遍历
1)Iterator:迭代输出
Iterator it = arr.iterator();
while(it.hasNext()){ object o =it.next(); …}
2)for循环:
for的形式:for(int i=0;i<arr.size();i++){…}
3)foreach:
for(int i:arr){…}

其他的小知识点

1)重载和重写:
重载:参数不同,姓名相同,在一个类中实现方法的变化。返回值不同,参数个数相同也被称为重载。
重写:在两个类中,存在继承或者实现关系,实现类和父类中的方法名是一模一样的。可以进行方法实现体的改写。
2)Public:整个项目 Private:当前类中 Protected:当前包中 defult/friendly 默认的
3)模块与模块之间建立依赖的方法,直接new需要的方法所对应的的类,然后alt+enter智能加依赖
4)模块化:module-同一个项目中,文件夹和文件夹之间相互调用,可以去相同名称的类。
5)Exception-所有的异常都是来源于此

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值