捕获异常:

try{

......

}catch(Exception e){

......

}finally{

......

}

注意:在写多重catch时需先小后大;

自定义异常:

String字符串常用方法:

String str = "haha xixi pipi"

int i = str.length;(i = 14);返回字符串str的长度;

int j = str.indexOf("xixi");(j = 5);返回“xixi”在字符串str中的位置;

String[] arr= str.split(" ");(arr = ["haha","xixi","pipi"]);以空格为分割符,将字符串str进行切割;

String t = str.substring(5,9);(t = "xixi");返回位置为[5,9)之间的字串;

String t1 = str.toLowerCase();将字符串转换为小写;

str.charAt(1);返回索引位置为1的字符;

byte[] b  = str.getBytes();将字符串转换为字节数组;

注意:char用' ';String用" ";

StringBuilder和StringBuffer类:设置一个内容可变的字符串对象,避免频繁地新创建字符串对象,产生很多的临时变量,StringBuffer比StringBuilder的不同之处是多了实现线程安全功能,因此StringBuilder的性能较高,平时使用也优先使用StringBuilder;

StringBuilder类常用的方法:

append(参数):追加内容到StringBuilder对象的末尾;

insert(位置,参数):将内容插入对象的指定位置;

toString():将StringBuilder对象转换为String对象;

length():获取字符串长度;

包装类:将基本数据类型包装成对象那样来操作;

包装类提供的两大类方法分别是:提供本类和其他基本数据类进行转换;将字符串和本类及包装类进行相互转换;

注:大部分的包装类名是基本数据类型的首字符变成大写,如byte-->Byte;而int的包装类是Integer,char的包装类是Character;

拆箱装箱:基本数据类型转换为包装对象类即装箱,包装类转为基本数据类型即拆箱;都可手动或自动,自动拆装箱需要求基本数据类型和包装类是相对应的,如byte对应Byte;

基本数据类型和字符串的转换:

转为字符串:

int c =10;

  1. String str1 = String.valueOf(c);
  2. String str2 = Integer.toString(c);
  3. String str3 = c + " " ;

转为基本数据类型:

String str = "ab"

  1. int a = integer.parseInt(str);
  2. int b = integer.valueOf(str);

表示时间:常用两大类Date和SimpleDateFormat

Date()返回当前时间,格式是

显然与我们日常生活中的常见格式有所区别,为了将其转换,需用到SimpleDateFormat类,里面提供了个format()方法,将时间格式转换为指定格式;如:

Date t = new Date();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String date = sdf.format(t)

此时的date字符串显示的就是我们刚指定的时间格式了;

相反的,我们可以将文本格式字符串格式转换为Date类型,此时用到的的parse()方法;

如:

package com.lzj;
import java.util.*;
import java.text.*;
public class test2 {
public static void main(String[] args) {
String day = "2018-11-04 10:30:20";
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try{Date date = df.parse(day);
System.out.println(date);
}catch(Exception e) {
}
}
}

运行结果:

操作时间,Date类本身也带有操作时间的方法,不过并不是很推荐,推荐的是使用Calendar类来进行时间和日期的处理;

Calendar类是java.util中的一个抽象类,通过getInstance()来获取Calendar对象,获取对象时本身就会初始化当前时间,并通过get()方法来获取信息值,如:

Calendar c = Calendar.getInstance();

int year = c.get(Calendar.YEAR);

其中的Calendar.YEAR是类中定义的一个静态常量;

除此之外,Calendar类还提供了另一些常用的方法:

Date date = c.getTime();将时间从Calendar对象转换为Date对象;

Long time = c.getTimeMillis();获取当前的毫秒数;

Math类:

Math类位于java.lang包中,是静态方法,因此可以直接通过类名调用方法,常用的方法有:

double a = 12.885;

  1. long y1 = Math.round(a);返回四舍五入后的数值;
  2. double y2 = Math.floor(a);返回小于参数的最大整数;
  3. double y3 = Math.ceil(a);返回大于参数的最小整数;
  4. double y4 = Math.random();产生[0,1)之间的随机数字;

java集合框架

List接口与它的实现类:List的元素是可重复有序,可以精确控制每个元素的插入或删除;ArrayList是List的一个重要实现类;

ArrayList实现类的常用方法add();可直接添加元素,也可指定位置添加元素:add(index,xxx);

addall():直接增加一个数组List,如添加的数组类型不是List,则需通过Arrays.asList()来将其转换;如:

同样的,它也可以通过指定参数index来选择插入的位置;

size():返回大小;

get(index):返回指定位置的元素;

iterator():将集合转为迭代器,再通过迭代器Iterator自身的方法来操作集合,如通过迭代器遍历集合。例:

set(index,xxx);把指定位置的元素改成xxx;

remove();删除元素,可直接指定元素名,也可直接指定索引名,同样的removeAll()方法也可以删除一个数组的元素;跟addAll()方法类似;

contains(xxx)/containsAll(xxx);判断集合是否包含xxx对象或xxx小集合,注意:就算对象的属性,方法都一样,但如果是不同对象,还是会返回false;

如果想让其只要某个属性相等就返回true,则需要在对象中重写equals方法,因为contains()方法的本质就是通过equals方法对比每个对象是否相等;

重写的模板如下参考:

indexOf(xxx)方法;返回xxx对象的索引位置;如果有多个xxx对象,返回的是第一个出现的位置索引,如果没有,返回-1;

泛型:规定了集合的类型以及其子类型对象,默认集合是可以增加各种类型数据的,编译时也不会报错,取出来的元素类型的Object类型,如果设定了泛型,则规定该集合只能存放规定类型的泛型,编译时存入不同的类型就会报错,取出来的也是规定的类型而不需有时还要进行强制转换;

List<Course> coursesToSelect ;定义泛型时格式;

this.coursesToSelect = new ArrayList<Course>();构造实例化List时格式;

注意:泛型是不可以使用基本类型,需使用他们的包装类或者是自己自定义的类;

set接口以及它的实现类HashSet;

set接口及实现与List中的方法类似,但由于set是无序不重复的集合,因此和List集合相比其方法没有set()方法,遍历的时候只能通过迭代器或foreach,不能用get()方法,因为是无序的,所以是不能指定位置的;set可以添加一个空对象null;contains()方法中除了要重写equals()方法外,还需重写hashCode()方法,该方法会返回一个哈希码,Set接口的实现类HashSet其定义的contains()方法需要判断哈希码以及对象相等后,才会返回true,这一点要区别于List中的contains()方法;

Map提供了一种映射,通过key-value的形式存储,可根据key快速查找value,key不可以重复,value可以,一个key只能映射一个value;

Map是支持泛型,形式如:Map<K,V>;方法:

put(key,value):增加对象;如果已有key值,则修改原有的value值;

remove(key):如有包含指定key,则删除对应的值;

keySet()、values()、entrySet():返回Map中key的集合、values值的集合以及键值对的集合;

注意:entrySet返回的键值对类型要这样表示:Set<Map.Entry<K,Y>> xxx =?;

HashMap类是Map接口的重要实现类,HashMap中的Entry对象的无序的,key和values都可以是null,但是只能有一个key是null(key值不能重复)

containsKey();判断是否包含某个Key值

containsValue();判断是否包含某个Value值;

注意:同样的,这两个判断包含方法也要重写equals()方法和hashCode()方法,要不然只能判断是不是同一个对象;

Collections类:定义了用来操作集合框架的方法;

常用方法:

sort(xxx);对xxx集合进行排序;注意:要实现排序,要确保集合里的对象实现了Comparable接口,其实现类需实现compareTo()方法,返回正数则表示大于比较对象,负数则小于,0则相等;而这个接口是定义默认的比较规则,因此可以比较;

而当我们集合里的对象不是Intager这种类似基本数据类型的包装类,而是自定义的对象时,直接使用sort()方法是会报错的,因为没有实现Comparable接口;

为了让我们自定义的对象可以使用sort()方法,我们可以将对象继承Comparable接口并重写compareTo()方法;通过传入一个对象,对比传入对象的某个属性和自身this对象的对应属性;

Comparator接口:定义临时的比较规则类,;实现类的compare()方法里传入两个对象,用于比较;

将定义好的Comparator实现类传入sort()方法中,并根据这个实现类定义的比较规则进行排序:

如:studentList是储存了自定义Student对象的集合,StudentComparator是自定义Comparator类的实现类,里面必需包括compare()方法;

注意:Comparable类和Comparator类都是带有泛型的;

而无论是Collections类、Comparable类还是Comparator类,都是java集合框架中的类:

java基础笔记(3)的更多相关文章

  1. Java基础笔记 – Annotation注解的介绍和使用 自定义注解

    Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 |  被围观 25,969 views+ 1.Anno ...

  2. 【转】Java基础笔记 – 枚举类型的使用介绍和静态导入--不错

    原文网址:http://www.itzhai.com/java-based-notes-introduction-and-use-of-an-enumeration-type-static-impor ...

  3. 黑马程序员----java基础笔记中(毕向东)

    <p>------<a href="http://www.itheima.com" target="blank">Java培训.Andr ...

  4. 黑马程序员----java基础笔记上(毕向东)

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 笔记一共记录了毕向东的java基础的25天课程,分上.中.下 本片为上篇,涵盖前10天课程 1. ...

  5. Java基础笔记1

    java (开源,跨操作系统)j2ee jre java基础 javaoop java高级 JDK(JAVA developer Kitool): java开发工具 (开发人员使用) JRE(java ...

  6. Java基础笔记(一)——JDK、JRE、JVM

    JDK.JRE和JVM三者的关系 Java程序执行过程 JVM(java virtual machine) 注:由于各种操作系统(windows.linux等)支持的指令集(二进制可执行代码)不同,程 ...

  7. Java基础笔记05-06-07-08

    五.今日内容介绍 1.方法基础知识 2.方法高级内容 3.方法案例 01方法的概述 * A: 为什么要有方法 * 提高代码的复用性 * B: 什么是方法 * 完成特定功能的代码块. 02方法的定义格式 ...

  8. Java基础笔记-抽象,继承,多态

    抽象类: abstract修饰 抽象方法必须定义在抽象类中,抽象类不能创建对象. 在抽象方法中可以不定义抽象方法,作用是:让该类不能建立对象. 特点是: 1.定义在抽象类中 2.方法和类都用abstr ...

  9. Java基础笔记(一)

    本文主要是我在看<疯狂Java讲义>时的读书笔记,阅读的比较仓促,就用 markdown 写了个概要. 第一章 Java概述 Java SE:(Java Platform, Standar ...

  10. JAVA基础笔记10-11-12-13-14

    十.今日内容介绍 1.继承 2.抽象类 3.综合案例---员工类系列定义 01继承的概述 *A:继承的概念 *a:继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系 *b:在J ...

随机推荐

  1. NOIP2016提高A组模拟10.15总结

    第一题,就是将原有的式子一步步简化,不过有点麻烦,搞了很久. 第二题,枚举上下边界,维护一个单调队列,二分. 比赛上没有想到,只打了个暴力,坑了80分. 第三题,贪心,最后的十多分钟才想到,没有打出来 ...

  2. 【leetcode&CN&竞赛】1196.How Many Apples Can You Put into the Basket

    题目如下: 楼下水果店正在促销,你打算买些苹果,arr[i] 表示第 i 个苹果的单位重量. 你有一个购物袋,最多可以装 5000 单位重量的东西,算一算,最多可以往购物袋里装入多少苹果. 示例 1: ...

  3. LeeCode - 括号生成

    给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 例如,给出 n = 3,生成结果为: [ "((()))", "(()())& ...

  4. html a标签 语法

    html a标签 语法 作用:<a> 标签定义超链接,用于从一张页面链接到另一张页面. 直线电机滑台 说明:<a> 元素最重要的属性是 href 属性,它指示链接的目标.在所有 ...

  5. Linux基本命令使用(三)

    1.压缩解压命令:gzip,   .gz格式的 gzip 文件名     就压缩了. Linux压缩的放到Windows下可以解压,但是Windows下压缩到Linux解压就不一定可以. (1)只能压 ...

  6. 当SQL Server出现当 MUST_CHANGE 为 ON (开)时

    取消账号强制策略时出现错误 当 MUST_CHANGE 为 ON (开)时,不能将 CHECK_POLICY 和 CHECK_EXPIRATION 选项设为 OFF (关). (Microsoft S ...

  7. 在MyEclipse安装Spket插件,用于jQuery代码提示

    Spket插件下载: https://pan.baidu.com/s/1sjz24NF 解压文件,然后将解压后的文件全部复制到MyEclipse安装目录下的dropins包中,重启MyEclipse. ...

  8. Apache Drill 调研学习

    Apache Drill 调研学习 ## 一.Drill概述 在大数据时代,对于Hadoop中的信息,越来越多的用户需要能够获得快速且互动的分析方法.大数据面临的一个很大的问题是大多数分析查询都很缓慢 ...

  9. ES6 函数参数的解构赋值

    function add([x, y]){ return x + y; } add([1, 2]); // 3

  10. 图的普里姆(Prim)算法求最小生成树

    关于图的最小生成树算法------普里姆算法 首先我们先初始化一张图: 设置两个数据结构来分别代表我们需要存储的数据: lowcost[i]:表示以i为终点的边的最小权值,当lowcost[i]=0说 ...