当前位置: 首页 > news >正文

网站设计上市公司太平洋建设集团招标网站

网站设计上市公司,太平洋建设集团招标网站,手机网站开发培训,网站开发 培训一、包装类 1.1 包装类简介 java是面向对象的语言#xff0c;但是八大基本数据类型不符合面向对象的特征。因此为了弥补这种缺点#xff0c;为这八中基本数据类型专门设计了八中符合面向面向对象的特征的类型#xff0c;这八种具有面向对象特征的类型#xff0c;就叫做包…一、包装类 1.1 包装类简介 java是面向对象的语言但是八大基本数据类型不符合面向对象的特征。因此为了弥补这种缺点为这八中基本数据类型专门设计了八中符合面向面向对象的特征的类型这八种具有面向对象特征的类型就叫做包装类英文wrapper class。 所有的基本数据类型和包装类型的对比如下图 1.2 装箱和拆箱 装箱boxing : 由基本数据类型转型为包装类型。 调用包装类的构造器进行装箱 调用valueOf()静态方法进行装箱 拆箱 unboxing: 由包装类型转型为基本数据类型。 调用xxxValue()非静态方法进行拆箱 public class Demo01 {public static void main(String[] args) {int age 10;Integer a1 new Integer(age);//用第一种方式进行装箱操作,由值转为了对象Integer a2 Integer.valueOf(100);//用第二种方式进项装箱操作int s a1.intValue();//拆箱操作由对象转为了值int s1a2.intValue();System.out.println(a1);System.out.println(a2);System.out.println(s1);//打印结果是11证明已经变回了值System.out.println(s11);//打印结果是101证明已经变回了值} } 1.3 自动装箱和拆箱 为了方便获取包装类对象从jdk1.5以后提供了一个自动装箱的操作也提供了一个包装类到基本数据类的自动拆箱操作。 自动装箱 : 直接使用一个基本数据类型的变量或字面值给一个包装类型的引用进行赋值即可  省略掉的是  valueOf 方法 自动拆箱 : 直接使用一个包装类型的引用给一个基本数据类型的变量进行赋值即可省略掉的是  xxValue 方法 Integer b66;//实际上底层直接帮我们调用了工具方法valueof()方法进行装箱 Short b1new Short(20); short b2b1;//底层自动调用Shortvalue()自动拆箱 1.4 包装类的常量池 对于装箱操作后的包装类的对象jvm在堆中维护了一个常量池该常量池适用于调用了valueOf()方法产生的包装类对象以及自动装箱的包装类对象。不适用于new关键字创建的包装类对象。 Byte, Short, Integer, Long 创建了数值范围为[-127,128]的相应类型的缓存数据 Character :创建了数值在 [0, 127] 范围的缓存数据 Boolean 直接返回 true 或 false 两种浮点数类型的包装类 Float, Double 并没有实现常量池技术。 Integer b3new Integer(11); Integer b4Integer.valueOf(11); System.out.println(b3b4); 证明b3和b4不是同一个对象一个在包装常量池一个在堆中 double d1 3.14;  Double d2 Double.valueOf(d1);  Double d3 Double.valueOf(d1);  System.out.println(d2d3);  如何有常量池那么d2和d3应该指向同一个地址结果是true,但结果是false证明没有常量池 1.5 包装类其他常用方法 工具方法 static WrapperClassName valueOf(xxx value) static WrapperClassName valueOf(String value) static xxx parseXXX(String value) static String toBinaryString();  转成二进制 static String toHexString();    转成16进制 static String toOctalString()   转成8进制 String line123456; int iInteger.parseInt(line); System.out.println(i1);//结果为123457证明把字符串line转成了int类型的数字 int num 1001; System.out.println(Integer.toBinaryString(num)); //1111101001 System.out.println(Integer.toOctalString(num)); // 1751 System.out.println(Integer.toHexString(num)); // 3e9 二、BigDecimal 提供该类的意图就是为了更精确的运算。(double和float在运算时有精度损失科研中一般不用) 1.1 常用构造器 BigDecimal(String s):  推荐使用 BigDecimal(int v): BigDecimal(long v): BigDecimal(double v): 1.2 常用方法 BigDecimal add(BigDecimal other); BigDecimal subtract(BigDecimal other); BigDecimal multiply(BigDecimal other); BigDecimal divide(BigDecimal other):  做除法时要注意除数不能是0 还有不能出现除不尽的情况不然都会报异常。 public class Demo02 {public static void main(String[] args) {BigDecimal m new BigDecimal(10);BigDecimal n new BigDecimal(20);BigDecimal summ.add(n);System.out.println(sum);//调用了重写的toString返回字符串样子。BigDecimal cn.subtract(m);System.out.println(c);BigDecimal c1n.multiply(m);System.out.println(c1);BigDecimal c2n.divide(m);System.out.println(c2);} } 1.3 常用的舍入模式 BigDecimal.setScale()方法用于格式化小数点 setScale(1)表示保留一位小数默认用四舍五入方式      setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位如2.35会变成2.3 setScale(1,BigDecimal.ROUND_UP)进位处理2.35变成2.4 setScale(1,BigDecimal.ROUND_HALF_UP)四舍五入2.35变成2.4 setScaler(1,BigDecimal.ROUND_HALF_DOWN)四舍五入2.35变成2.3如果是5则向下舍 setScaler(1,BigDecimal.ROUND_CEILING)接近正无穷大的舍入 setScaler(1,BigDecimal.ROUND_FLOOR)接近负无穷大的舍入数字0和ROUND_UP作用一样数字0和ROUND_DOWN作用一样 setScaler(1,BigDecimal.ROUND_HALF_EVEN)向最接近的数字舍入如果与两个相邻数字的距离相等则向相邻的偶数舍入。 1、ROUND_UP向远离0的方向舍入在丢弃非零部分之前始终增加数字(始终对非零舍弃部分前面的数字加1)。 注意此舍入模式始终不会减少计算值的大小。 eg: 保留1位小数 1.60-1.6 1.61-1.7 1.66-1.7 -1.62--1.7 2、ROUND_DOWN向接近0的方向舍入在丢弃某部分之前始终不增加数据即截断该方式是只减不加。 eg: 保留1位小数 1.60-1.6 1.61-1.6 1.66-1.6 -1.62--1.6 3、ROUND_CEILING向正无穷方向舍入如果数值为正舍入方式与ROUND_UP一致如果为负舍入方式与ROUND_DOWN一致该模式始终不会减少计算数值。 eg: 保留1位小数 1.60-1.6 1.61-1.7 1.66-1.7 -1.62--1.6 4、ROUND_FLOOR向负无穷方向舍入如果数值为正舍入行为与 ROUND_DOWN 相同如果为负则舍入行为与 ROUND_UP 相同。该模式始终不会增加计算数值。 eg: 保留1位小数 1.60-1.6 1.61-1.6 1.66-1.6 -1.62--1.7 5、ROUND_HALF_UP向“最接近的”数字舍入也就是四舍五入。 eg: 保留1位小数 1.61-1.6 1.65-1.7 1.66-1.7 -1.62--1.6 6、ROUND_HALF_DOWN向“最接近的”数字舍入如果与两个相邻数字的距离相等则为上舍入的舍入模式也就是五舍六入。 eg: 保留1位小数 1.61-1.6 1.65-1.6 1.66-1.7 -1.62--1.6 7、ROUND_HALF_EVEN向“最接近的”数字舍入如果与两个相邻数字的距离相等则向相邻的偶数舍入。如果舍弃部分左边的数字为奇数则舍入行为与 ROUND_HALF_UP 相同如果为偶数则舍入行为与 ROUND_HALF_DOWN 相同。 eg. 1.15-1.2, 1.25-1.2 8、ROUND_UNNECESSARY计算结果是精确的不需要舍入模式。如果对获得精确结果的操作指定此舍入模式则抛出ArithmeticException。 1.4  BigDecimal常见问题 1、创建 BigDecimal精度丢失 在BigDecimal 中提供了多种创建方式可以通过new 直接创建也可以通过 BigDecimal.valueOf 创建。这两种方式使用不当也会导致精度问题。 public static void main(String[] args) throws Exception {    BigDecimal b1 new BigDecimal(0.1);    System.out.println(b1);    BigDecimal b2 BigDecimal.valueOf(0.1);    System.out.println(b2);    BigDecimal b3 BigDecimal.valueOf(0.111111111111111111111111111234);    System.out.println(b3); } 上面示例中两个方法都传入了double类型的参数0.1但是 b1 还是出现了精度的问题。造成这种问题的原因是 0.1 这个数字计算机是无法精确表示的送给 BigDecimal 的时候就已经丢精度了。 结论 第一在使用BigDecimal构造函数时尽量传递字符串而非浮点类型 第二如果无法满足第一条则可采用BigDecimal.valueOf方法来构造初始化值。但是valueOf受double类型精度影响当传入参数小数点后的位数超过double允许的16位精度还是可能会出现问题的 2、等值比较的坑 一般在比较两个值是否相等时都是用equals 方法但是在BigDecimal 中使用equals可能会导致结果错误BigDecimal 中提供了 compareTo 方法在很多时候需要使用compareTo 比较两个值。 public static void main(String[] args){     BigDecimal b1 new BigDecimal(1.0);     BigDecimal b2 new BigDecimal(1.00);     System.out.println(b1.equals(b2));     System.out.println(b1.compareTo(b2)); } 出现此种结果的原因是equals不仅比较了值是否相等还比较了精度是否相同。示例中由于两个值的精度不同所有结果也就不相同。而 compareTo 是只比较值的大小。返回的值为-1小于0等于1大于。 3、无限精度的坑 BigDecimal 并不代表无限精度当在两个数除不尽的时候就会出现无限精度的坑此种情况只需要在使用 divide方法时指定结果的精度即可 BigDecimal b3 new BigDecimal(1); BigDecimal b4 new BigDecimal(3); System.out.println(b3.divide(b4,2, RoundingMode.HALF_UP));//结果为0.33 在使用BigDecimal进行所有运算时尽量指定精度和舍入模式。 三、Date日期类型 3.1 简介 1、是一个用来表示时间、日期的类这个类在 java.util 包中在使用 Date的时候一定要注意 : 在 java.sql 包中也有一个Date千万不要导错包了。 2、 Date对象用来表示一个时间点。是距离纪元时间点的总毫秒数。 3、纪元时间点:  1970年1月1日00:00:00本初子午线处的时间点 3.2 常用API 1构造器 Date() :获取当前系统时间 Date(long time)设置一个距离固定点的指定毫秒数的时间点。 2方法 long getTime() void setTime(long time) String toString() 格式 Thu May 24 19:32:14 CST 2018 Date now new Date(); System.out.println(now); Date d new Date(24*60*60*1000*2);//使用有参构造器来获取距离纪元的2天后的时间 System.out.println(d); 四、SimpleDateFormat类型 4.1 简介 java.text.SimpleDateFormat是一个用来格式化和解析日期的具体类它允许进行格式化(日期 -文本)、解析(文本 - 日期)和规范化 将一个Date对象转成一个指定格式的字符串 将一个自定格式的字符串转成一个Date对象 4.2 常用构造器和方法 1构造器 - SimpleDateFormat() - SimpleDateFormat(String pattern):指定一个日期格式符号来构造对象 2方法 - final String format(Date date) Date - Date parse(String source) throws ParseException String 3日期模式匹配字符 字符含义案例y年yyyy年—2018年yy-18年M月MM月—05月M月—5月d日dd日—06日d日—6日E星期E-星期日(Sun)a上下午(AM、PM)a—下午(PM)H24小时制a h时--------下午 10时HH:mm:ss------12:21:34hh(a):mm:ss------12(PM):21:34h12小时制m分钟s秒 public class Date01 {public static void main(String[] args) throws ParseException {Date now new Date();System.out.println(now);Date d new Date(24*60*60*1000*2);//使用有参构造器来获取距离纪元的2天后的时间System.out.println(d);//进行格式化SimpleDateFormat a new SimpleDateFormat(yyyy.MM.dd HH.mm.ss);String stra.format(now);System.out.println(str);String s12002年11月09日;//字符串转日期时SimpleDateFormat里的格式按照字符串来写SimpleDateFormat datenew SimpleDateFormat(yyyy年MM月dd日);Date date1date.parse(s1);System.out.println(date1);}   五、Calendar类型 5.1 简介 1、日历类型位于java.util包下封装了日历信息包括年月日时分秒这些时间分量。 2、Calendar是抽象类有很多子类型比如格力高日历类型。该格力高日历类型正是大多数国家通用的日历类型即阳历。 3、 程序员不需要直接调用子类型的构造器来获取日历对象Calendar类型里封装了一个工具方法getInstance(),来获取该地区的子类型对象。 5.2 常用方法 1getInstance方法 Calendar提供了一个类方法getInstance,以获取此类型的一个通用的对象 此方法返回一个Calendar对象其日历字段已经由当前日期和时间初始化 2getActualMaximum方法 作用指定一个时间常量返回指定日历分量可能拥有的最大值 Date getTime(); get(int Field) 5.3 时间常量 Calendar.YEAR:   年 Calendar.MONTH:  月    注意 该值的范围是0~11分别表示1月~12月。 因此表示月份时要1操作。 Calendar.DAY_OF_MONTH   日 Calendar.DATE           日 Calendar.HOUR_OF_DAY   24小时制的时 Calendar.HOUR         12小时制的时 Calendar.MINUTE      分钟 Calendar.SECOND      秒钟 Calendar.DAY_OF_WEEK:   星期几     范围1~7  1表示周日 7表示周六  显示时要-1操作 Calendar.DAY_OF_YEAR:   一年中的第几天。 public class Calendar01 {public static void main(String[] args) {//想要获取一个日历对象Calendar cal Calendar.getInstance();System.out.println(cal);Date time cal.getTime();System.out.println(time);System.out.println(------------设置时间分量------------------);// 修改成北京奥运时间: 2008-8-8日 20:08:00cal.set(Calendar.YEAR,2008);System.out.println(cal.getTime());cal.set(Calendar.MONTH,8-1);cal.set(Calendar.DAY_OF_MONTH,8);cal.set(Calendar.HOUR_OF_DAY,20);cal.set(Calendar.MINUTE,8);System.out.println(cal.getTime());} }
http://www.hkea.cn/news/14327448/

相关文章:

  • 将网站发布到微信小程序怎么做百度小程序可以根据网站的要求做吗
  • asp.net网站和空网站有什么区别关键词优化价格
  • 网站建设费用要摊销嘛wordpress ckplayer
  • 免费网站制作软件有哪些什么是wordpress程序
  • 网站建设与管理大作业总结商用图片做公司网站可以吗
  • 怎么做pdf电子书下载网站好用心 做网站送女友
  • 北京市住房及城乡建设部网站wordpress 下拉式菜单
  • 长沙建站模板大全如何防止网站被攻击
  • 武威网站怎么做seo模板网站缺点
  • 计算机应用技术网站开发方向松江品划网站建设
  • 企业网站建站元素企业网站托管后果
  • 网站建设可以自己弄吗知乎单页手机网站源码
  • 报电子商务( 网站建设与运营)wordpress编辑器哪个好用
  • 房产网站建设方案的论文杭州市住房和城乡建设部网站
  • 做一个手机网站多少钱专业网站建设价格
  • 企业网站产品优化怎么做如何做自己的游戏网站
  • 网站建设类外文翻译911制品厂麻花
  • 网站建设 目标免费手机端网站模板下载安装
  • 如何开发网站建设业务西安关键词排名优化
  • 服务器怎么建设网站青岛网站建站团队
  • 网站项目综合设计作业 代做wordpress ucenter
  • 地方旅游网站建设必要性免费网课
  • 精品课程网站开发的创新点wordpress购物系统
  • 网站建设技术服务费记什么科目网站备案座机
  • 优秀平面设计作品网站德阳 网站建设
  • 南京市的网站是由那几家公司做的有的网站在浏览器打不开怎么办
  • 宠物网站模板下载如何加强企业网站建设 论文6
  • wordpress 首页调用最新文章成都seo学徒
  • 网站视频解析中国做外贸网站有哪些
  • 网站的子域名做视频网站利润如何