Java基础Day07(Map Calender Date 包装类 System类 异常)
1.Map
- Map是集合容器,存放的元素有键与值两部分组成,通过键可以找到所对应的值,键和值必须是引用数据类型,键是唯一的,不能重复,没有顺序。
- HashMap是Map的实现类.
- Map的添加,删除,查询
- //创建Map对象
- Map<String, String> map = new HashMa p<String,String>();
- //给map中添加元素
- map.put("1", "Monday");
- map.put("7", "Sunday");
- System.out.println(map);
- //当给Map中添加元素,会返回key对应的原来的 value值,若key没有对应的值,返回null System.out.println(map.put("1", "Mo n")); // Monday
- System.out.println(map); // {星期日=Su nday, 星期一=Mon} 根据指定的key获取对应的value
- String en = map.get("1");
- System.out.println(en); // Sunday 根据key删除元素,会返回key对应的value值
- String value = map.remove("1");
- System.out.println(value); // Sunday
- System.out.println(map); // {1=Mon}
- Map的遍历
- Map<String, String> map = new HashMa p<String,String>();
//给map中添加元素- map.put("邓超", "孙俪");
- map.put("李晨", "范冰冰");
- map.put("刘德华", "柳岩"); //获取Map中的所有key
- Set<String> keySet = map.keySe t();
- for(String key : keySet){
- System.out.println(map.get(ke y))
- }
Calender
- /*
- public abstract class Calendar extends Object implements Serializable, Cloneable, Comparable<Calendar> 抽象类
- */
//创建对象- Calendar calendar = Calendar.getInstance();
- //get(int filed)
- //获取年月日 时分秒信息
- int year = calendar.get(Calendar.YEAR);
- int month = calendar.get(Calendar.MONTH)+1;//从0开始算起,最大11;0代表1月,11代表12月
int date = calendar.get(Calendar.DATE);
int hour = calendar.get(Calendar.HOUR);
- int minute = calendar.get(Calendar.MINUTE);
- int second = calendar.get(Calendar.SECOND);
- System.out.println(year+"年"+month+"月"+date+"日 "+hour+":"+minute+":"+second); //2020年7月1日 11:14:46
//指定字段增加值
Calendar c = Calendar.getInstance();
//修改当前时间为3天后
c.add(Calendar.DATE, 3);
//修改当前时间为5小时后
c.add(Calendar.HOUR, 5);
- //转换日期类型
- Date time = calendar.getTime();
- System.out.println(time); // Wed Jul 01 11:16:10 CST 2020
- //设置时间为2020年5月7日
- calendar.set(Calendar.YEAR, 2020);
- calendar.set(Calendar.MONTH, 5);
- calendar.set(Calendar.DATE, 7);
- int year2 = calendar.get(Calendar.YEAR);
- int month2= calendar.get(Calendar.MONTH);
- int date2 = calendar.get(Calendar.DATE);
- System.out.println(year2+"年"+month2+"月"+date2+"日");//2020年5月7日
Date
构造函数 :public Date()
Date
对象并对其进行初始化,以便它表示分配的时间,测量到最近的毫秒。System.currentTimeMillis()
;
- Date date1 = new Date();
- System.out.println(date1);//当前日期
- Date date2 = new Date(12354356000000L);
- System.out.println(date2);//指定日期
DateFormat
- Date date2 = new Date(); //DateFormat抽象类,SimpleDateFormat是DateF ormat实现类
- DateFormat df = new SimpleDateFormat("yyy y-MM-dd E HH:mm:ss a");
- String str = df.format(date2);
- System.out.println(str);//2017-07-04 星期 二 20:04:43 下午
- Date date = new Date(12354356000000L);
- DateFormat df = new SimpleDateFormat(“yyy y年MM月dd日”);
- String str = df.format(date);
- String str = ”2020年12月11日”;
- DateFormat df = new SimpleDateFormat(“yyy y年MM月dd日”);
- Date date = df.parse(str);
System
- public static void main(String[] args) {
- // 获取当前时间的毫秒值
- System.currentTimeMillis();
- // 结束当前程序
- System.exit(0);
- // 数组的拷贝
- System.currentTimeMillis();//取当前系统时间与1970年01月01日00:00点 之间的毫秒差值
- System.exit(0);//结束程序,通常传入0记为正常状 态,其他为异常状态
- int[] src = new int[]{1,2,3,4,5};
- int[] dest = new int[]{6,7,8,9,10}; //源数组,源数组的起始位置,目标数组,目标数组的起 始位置,目标数组的长度
- System.arraycopy( src, 0, dest, 0, 3); //src数组元素[1,2,3,4,5] //dest数组元素[1,2,3,9,10]
- }
Math
- abs方法,结果都为正数
- double d1 = Math.abs(-5); // d1的值为5
- double d2 = Math.abs(5); // d2的值为5
- double d1 = Math.abs(-5); // d1的值为5
- ceil方法,结果为比参数值大的最小整数的double值
- double d1 = Math.ceil(3.3); //d1的值为 4.0
- double d2 = Math.ceil(-3.3); //d2的值为 -3.0
- double d3 = Math.ceil(5.1); // d3的值为 6.0
- double d1 = Math.ceil(3.3); //d1的值为 4.0
- floor方法,结果为比参数值小的最大整数的double值
- double d1 = Math.floor(3.3); //d1的值为3.0
- double d2 = Math.floor(-3.3); //d2的值 为-4.0
- double d3 = Math.floor(5.1); //d3的值为 5.0
- double d1 = Math.floor(3.3); //d1的值为3.0
- max方法,返回两个参数值中较大的值
- double d1 = Math.max(3.3, 5.5); //d1的值为 5.5
- double d2 = Math.max(-3.3, -5.5); //d2的 值为-3.3
- double d1 = Math.max(3.3, 5.5); //d1的值为 5.5
- min方法,返回两个参数值中较小的值
- double d1 = Math.min(3.3, 5.5); //d1的值为 3.3
- double d2 = Math.max(-3.3, -5.5); //d2的 值为-5.5
- double d1 = Math.min(3.3, 5.5); //d1的值为 3.3
- pow方法,返回第一个参数的第二个参数次幂的值
- double d1 = Math.pow(2.0, 3.0); //d1的值为 8.0
- double d2 = Math.pow(3.0, 3.0); //d2的值为 27.0
- double d1 = Math.pow(2.0, 3.0); //d1的值为 8.0
- round方法,返回参数值四舍五入的结果
- double d1 = Math.round(5.5); //d1的值为6.0
- double d2 = Math.round(5.4); //d2的值为5.0
- double d1 = Math.round(5.5); //d1的值为6.0
- random方法,产生一个大于等于0.0且小于1.0的double小数
- double d1 = Math.random();
- //得到的 是[0,1)的小数
- //锁定范围获取 a-b整数
- int a = (int)(Math.random()*(b-a+1))+a
- double d1 = Math.random();
包装类
大数据运算
BigInteger
大数据整数的加,减,乘,除
- //大数据封装为BigInteger对象
- BigInteger big1 = new BigInteger("12345 678909876543210");
- BigInteger big2 = new BigInteger("98765 432101234567890"); //add实现加法运算
- BigInteger bigAdd = big1.add(big2); System.out.println(bigAdd); //subtract实现减法运算
- BigInteger bigSub = big1.subtract(big 2); System.out.println(bigSub); //multiply实现乘法运算 BigInteger bigMul = big1.multiply(big 2);System.out.println(bigMul); //divide实现除法运算 BigInteger bigDiv = big2.divide(big1); System.out.println(bigDiv);
BigDecimal
有些时候操作小数的,会出现精度问题如
- System.out.println(0.09+0.01);//0.0999999 9999999999
System.out.println(1.201*100);//120.10000 000000001- //大数据封装为BigDecimal对象
- BigDecimal big1 = new BigDecimal("0.09");
- BigDecimal big2 = new BigDecimal("0.01"); //add实现加法运算
- BigDecimal bigAdd = big1.add(big2); System.out.println(bigAdd );
- BigDecimal big3 = new BigDecimal("1.0");
- BigDecimal big4 = new BigDecimal("0.32"); //subtract实现减法运算
- BigDecimal bigSub = big3.subtract(big4);
- System.out.println(bigSub);
- BigDecimal big5 = new BigDecimal("1.10 5");
- BigDecimal big6 = new BigDecimal("100"); //multiply实现乘法运算
- BigDecimal bigMul = big5.multiply(big6); System.out.println(bigMul); //divide实现除法
- BigDecimal bigDiv = big5.divide(big6,2,Bi gDecimal.ROUND_UP);
Arrays
- 使用二分查找搜索指定int类型数组
- int[] arr = {1,3,4,5,6};
- int index = Arrays.binarySearch(arr, 4); //index的值为2
- int index2= Arrasy.binarySearch(arr, 2); //index2的值为-1
- 数组升序排序
- int[] arr = {1,5,9,3,7};
- Arrays.sort( arr );
- 将数组的内容以字符串形式呈现
- int[] arr = {1,5,9,3,7}; String str = Arrays.toString(arr); // str 的值为[1, 3, 5, 7, 9]
异常
如果产生异常的地方没有对他处理,那么会向上抛出,抛向调用者,如果调用者没有对异常作出处理,会给jvm处理,jvm会找到自己内部能不能识别到该异常信息对应的类,如果找到了,会构建一个异常的对象,会把异常产生的原因,异常产生的位置,异常产生的内容封装进该对象中在控制台显现出来,并且终止程序。
throwable类中
public String getMessage()返回此throwable的详细消息字符串。在Throwable类的下的子类Error异常情况是无法解决的,属于硬伤,作为程序员能够解决的是Exception这种类型的异常情况。
Exception:
编译期异常:通过使用集成开发工具在编写程序的时候,就出现的异常问题,如果不处理,程序无法继进行,需要程序员立刻对异常做出处理,否则无法编写。
运行期异常:在编译之后,程序在运行过程中产生的异常问题,JM把异常信息抛出,一般是由于逻辑错误导致的异常情况,通过优化你的代码可以解决掉的
编译期异常:除了RunTimeException异常之外,其余的都是编译期异常。
运行期异常:
算术异常:Ari thmeticException
空指针异常:Null PointerException
越界异常:IndexOutOfBoundsException
类转换异常:ClassCastException
Java基础Day07(Map Calender Date 包装类 System类 异常)的更多相关文章
- Java基础关于Map(字典)的方法使用
Java基础关于Map(字典)的方法使用 java中一般用map与hashmap来创建一个key-value对象 使用前提是要导入方法包: import java.util.HashMap: impo ...
- Java基础系列2:深入理解String类
Java基础系列2:深入理解String类 String是Java中最为常用的数据类型之一,也是面试中比较常被问到的基础知识点,本篇就聊聊Java中的String.主要包括如下的五个内容: Strin ...
- Java基础 【Math、Random、System、BigInteger、BigDecimal、Date、Calendar等常用类的使用】
学习的这几个类 是日常工作中经常要使用到的类 Math 类包含用于执行基本数序运算的方法,如初等指数.对数.平方根和 三角函数. 成员方法 1.public static int abs(int a ...
- 黑马程序员——JAVA基础之Map集合
------- android培训.java培训.期待与您交流! ---------- Map集合: 该集合存储键值对.一对一对往里存.而且要保证键的唯一性. 和Set很像,其实Set底层就是使用了M ...
- JAVA基础之Map接口
个人理解: 个人感觉Map接口以后会经常用到,可以很清晰地查找某个对象,要熟悉其四种遍历方法.特别注意其键值对的键不能是重复的,有想定义有序存取的话,可以使用LinkedHashMap集合.不过定义自 ...
- java基础(20):Map、可变参数、Collections
1. Map接口 1.1 Map接口概述 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同,如下图. Collection中的集合,元素是孤 ...
- Java—包装类/System类/Math类/Arrays类/大数据运算/Collection接口/Iterator迭代器
基本类型包装类 8种基本类型对应的包装类如: 将字符串转成基本类型: 将基本数值转成字符串有3种方式: 基本类型直接与””相连接即可:34+" " 调用String的valueOf ...
- Java基础教程——Map
Map 返回类型 方法 描述 V get(Object key) 根据key取得value V put(Obejct k,Object v) 向Map中加入(替换)元素,返回之前的Value:之前没有 ...
- java基础(16):正则表达式、Date、DateFormat、Calendar
1. 正则表达式 1.1 正则表达式的概念 正则表达式(英语:Regular Expression,在代码中常简写为regex). 正则表达式是一个字符串,使用单个字符串来描述.用来定义匹配规则,匹配 ...
随机推荐
- Java实现 LeetCode 671 二叉树中第二小的节点(遍历树)
671. 二叉树中第二小的节点 给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为 2 或 0.如果一个节点有两个子节点的话,那么这个节点的值不大于它的子节点的值. 给出这样的 ...
- Java实现 LeetCode 477 汉明距离总和
477. 汉明距离总和 两个整数的 汉明距离 指的是这两个数字的二进制数对应位不同的数量. 计算一个数组中,任意两个数之间汉明距离的总和. 示例: 输入: 4, 14, 2 输出: 6 解释: 在二进 ...
- Java实现 LeetCode 398 随机数索引
398. 随机数索引 给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引. 您可以假设给定的数字一定存在于数组中. 注意: 数组大小可能非常大. 使用太多额外空间的解决方案将不会通过测试 ...
- Java实现 蓝桥杯VIP 算法提高 3000米排名预测
算法提高 3000米排名预测 时间限制:1.0s 内存限制:256.0MB 问题描述 3000米长跑时,围观党们兴高采烈地预测着最后的排名.因为他们来自不同的班,对所有运动员不一定都了解,于是他们分别 ...
- 使用Python爬取网页的相关内容(图片,文字,链接等等)
代码解释的很详细了,有不明白的欢迎评论 ~~~滑稽 import requests from bs4 import BeautifulSoup # #获取图片 输入网址 req=requests.ge ...
- Mybatis缓存及延迟加载策略
一:引言 通过前面几篇的文章介绍了Mybatis的一对一.一对多.多对多关系的配置及实现,可是大家发现了吗?在执行关联查询的时候,直接会把当前查询的主表里包含的副表也查询后封装到对象里,其实在实际开发 ...
- Flask 的 session
Flask 的 session @app.route("/", ) def index(): # 如何设置sessoion # 1 导入session # 2 给sessoion设 ...
- 小菜成长之路,警惕沦为 API 调用侠
小菜(化名)在某互联网公司担任运维工程师,负责公司后台业务的运维保障工作.由于自己编程经验不多,平时有不少工作需要开发协助. 听说 Python 很火,能快速开发一些运维脚本,小菜也加入 Python ...
- Javascript模块化编程(转自阮一峰的网络日志)(备忘)
http://www.ruanyifeng.com/blog/2012/10/javascript_module.html
- Jupyter notebook中的Cell and Line Magics
参考资料: https://www.jianshu.com/p/81ada9234788 https://my.oschina.net/u/2306127/blog/832510 首先,Cell an ...