乐趣区

关于后端:第24章-Java-数据类型转换

每日一句

井底点灯深烛伊,共郎长行莫围棋。

每日一句

What we call “failure” is not falling down, but the staying down.
所谓“失败”不是跌倒,而是就此躺平。

概述

数据类型的转换,分为主动转换和强制转换。主动转换是程序在执行过程中“悄悄”进行的转换,不须要用户提前申明,个别是从位数低的类型向位数高的类型转换;强制类型转换则必须在代码中申明,转换程序不受限制。

主动数据类型转换

主动转换按从低到高的程序转换。不同类型数据间的优先关系如下:

 低 ---------------------------------------------> 高
byte,short,char-> int -> long -> float -> double

运算中,不同类型的数据先转化为同一类型,而后进行运算,转换规则如下:

操作数 1 类型 操作数 2 类型 转换后的类型
byte、short、char int int
byte、short、char、int long long
byte、short、char、int、long float float
byte、short、char、int、long、float double double

强制数据类型转换

强制转换的格局是在须要转型的数据前加上“()”,而后在括号内退出须要转化的数据类型。有的数据通过转型运算后,精度会失落,而有的会更加准确,上面的例子能够阐明这个问题。

publicclassDemo{publicstaticvoidmain(String[] args){
        int x;
        double y;
        x = (int)34.56 + (int)11.2;  *// 失落精度 *
        y = (double)x + (double)10 + 1;  *// 进步精度 *
        System.out.println("x=" + x);
        System.out.println("y=" + y);
    }
}
运行后果:x=45
y=56.0

仔细分析下面程序段:因为在 34.56 前有一个 int 的强制类型转化,所以 34.56 就变成了 34。同样 11.2 就变成了 11 了,所以 x 的后果就是 45。在 x 前有一个 double 类型的强制转换,所以 x 的值变为 45.0,而 10 的后面也被强制成 double 类型,所以也变成 10.0,所以最初 y 的值变为 56。

美文佳句

很多时候,事件的窘境,经常是因为咱们本人钻了牛角尖,此时,你须要做的就是扭转。

完满主义者能够放下执念,容许本人有普通人都会犯的小迷糊;职场妈妈能够直面事实,一个人永远做不到家庭和事业的双百分;承当了过多工作工作的员工,能够尝试向下级反映,寻求资源或调整指标……这些,都是咱们该当并能够作出的扭转。

正如这句话所说:世界上素来都没有所谓的奇观,命运始终都把握在咱们本人手里。想要扭转本人的命运,最重要的就是扭转本人。当你开始扭转本人的时候,很多货色就跟着扭转了。

下一次,当懊恼来临时,无妨试试从本身找找问题。调整致力的方向和节奏,学会给心灵松绑,你会发现:很多事,其实没什么大不了。

面试题

SpringMVC 框架有什么用?

Spring Web MVC 框架提供”模型 - 视图 - 控制器”(Model-View-Controller) 架构和随时可用的组件,用于开发灵便且涣散耦合的 Web 应用程序。
MVC 模式有助于拆散应用程序的不同方面,如输出逻辑,业务逻辑和 UI 逻辑,同时在所有这些元素之间提供涣散耦合。

SpringMVC 框架有什么用?

Spring Web MVC 框架提供”模型 - 视图 - 控制器”(Model-View-Controller) 架构和随时可用的组件,用于开发灵便且涣散耦合的 Web 应用程序。
MVC 模式有助于拆散应用程序的不同方面,如输出逻辑,业务逻辑和 UI 逻辑,同时在所有这些元素之间提供涣散耦合。

HashMap、ConcurrentHashMap 和 Hashtable 有什么区别?

HashMap ConcurrentHashMap Hashtable
线程是否平安,以及实现线程平安的形式 HashMap 不平安 线程平安,ConcurrentHashMap
JDK1.7 底层采纳分段锁,对整个桶数进行了宰割分段(segment),
每一把锁只锁容器其中一部分数据,进步并发访问率。
JDK 1.8 底层采纳 Node 数组 + 链表 + 红黑树的构造实现,
并发管制应用了 synchronized 和 CAS 操作。
线程平安,底层采纳 synchronized 来保障线程平安,
间接是办法级别的加锁,ConcurrentHashMap 尽管也是 synchronized
但它是对链表或者红黑树的头节点进行加锁,锁的粒度更小
底层工作原理 底层采纳的是 数组 + 链表 ConcurrentHashMap
JDK 1.7 底层采纳 分段的数组 + 链表实现。
JDK 1.8 采纳的是 数组 + 链表 / 红黑树
底层采纳的是 数组 + 链表
空值问题 HashMap 容许应用 null 值(key 和 value)都能够。
然而这样的键只有一个,能够有一个或多个键所对应的值为 null
HashTable 不容许 null 值(key 和 value 都不能够)
初始容量、扩容与默认负载因子 HashMap 默认初始大小 16,每次扩容 2n,默认负载因子是 0。75 HashTable 默认初始大小为 11,每次扩容 2n+1

你好,我是 yltrcc,日常分享技术点滴,欢送关注我:ylcoder

退出移动版