每日一句

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

每日一句

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

第24章 Java 数据类型转换的更多相关文章

  1. Java数据类型转换浅析

    Java数据类型转换分为两种:自动类型转换和强制类型转换. 数据类型转换的关键是数据类型相应的表数范围大小 1.自动类型转换: 概念:小范围数据类型会自动转化成大范围数据类型 实例: int a=10 ...

  2. Java数据类型转换1

    1 如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([ ...

  3. java数据类型转换那点事

    public class kkk { /** * 先看看eclipse对于数值型转换会有哪些报错,但是有一点必须明确,eclipse不报错的,不一定就是说这种思维逻辑是对的 * 可以直接将代码复制过去 ...

  4. Java数据类型转换(自动转换和强制转换)

    数据类型的转换,分为自动转换和强制转换.自动转换是程序在执行过程中“悄然”进行的转换,不需要用户提前声明,一般是从位数低的类型向位数高的类型转换;强制类型转换则必须在代码中声明,转换顺序不受限制. 自 ...

  5. 2、java数据类型转换

    当数据类型不一样时,将会发生数据类型转换. 1.自动类型转换(隐式) 1. 特点:代码不需要进行特殊处理,自动完成. 2. 规则:数据范围从小到大. System.out.println(1024); ...

  6. 《Java大学教程》—第24章 Java的背景

    本章主要介绍的是Java的背景知识,通过了解历史知道Java与其他语言的区别,以便更好选择在什么场景下使用Java. 24.2    语言的尺寸Java语言短小.紧凑,以C++为基础,放弃了一些特定的 ...

  7. Java 数据类型转换(转换成字节型)

    package com.mystudypro.byteutil; import java.io.UnsupportedEncodingException; public class ConToByte ...

  8. Java数据类型转换问题

    基本数据类型 整数型 byte --- 字节型 --- 1个字节 --- -27~27-1 -> -128~127 byte b1 = 25; byte b2 = 127; short --- ...

  9. 第24章 java线程(3)-线程的生命周期

    java线程(3)-线程的生命周期 1.两种生命周期流转图 ** 生命周期:**一个事物冲从出生的那一刻开始到最终死亡中间的过程 在事物的漫长的生命周期过程中,总会经历不同的状态(婴儿状态/青少年状态 ...

随机推荐

  1. 浏览器视图层级中的“根”:<html>和<body>的属性研究

    做前端开发的同学都会知道,每一个UI系统(比如IOS或Android)中都会有一个view hierarchy(视图层级)的概念,即所有的可视元素(大到一个页面,小到一个button)都在一个树形结构 ...

  2. Vue-cli的打包初体验

    前言:我司是一个教育公司,最近要做一个入学诊断的项目,领导让我开始搭建一套基于vue的H5的开发环境.在网上搜集很多的适配方案,最终还是选定flexible方案.选择它的原因很简单: 它的github ...

  3. 通读Python官方文档之wsgiref(未完成)

    wsgirf-WSGI功能及参考实现 源码:Lib/wsgiref Web服务器网关接口(Web Server Gateway Interface, WSGI),是用Python写的一个服务器软件和w ...

  4. WebGL小姐姐教我学画画之起手式

    初次接触WebGL,如有错误之处欢迎留言,共同学习进步. v WebGL的自画像 我,WebGL,全名Web Graphics Library,是为了让死宅程序猿们(摊手)能在浏览器上为所欲为的画女朋 ...

  5. javaweb之删除功能

    对数据库的删除,主要是通过表中的一个数据查询来进行逐个删除,否则会清空整张表. 一.dao层 在dao层加入删除方法 public boolean delete(Course n) { boolean ...

  6. java之String字符串根据指定字符转化为字符串数组

    public static void main(String[] args){ String str="护肤,药品,其他"; String temp[]; temp=str.spl ...

  7. 微信小程序命名规则

    目录分析 src是主要的开发目录,各个文件实现功能如下所示: ├─.idea │ └─libraries ├─.temp ├─config └─src ├─assets │ └─images ├─co ...

  8. Django高级之-缓存

    一 缓存介绍 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消 ...

  9. 【LeetCode】76. 最小覆盖子串

    76. 最小覆盖子串 知识点:字符串:滑动窗口 题目描述 给你一个字符串 s .一个字符串 t .返回 s 中涵盖 t 所有字符的最小子串.如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 ...

  10. 数据库基础知识详解三:MVCC、范式以及表连接方式

    写在文章前:本系列文章用于博主自己归纳复习一些基础知识,同时也分享给可能需要的人,因为水平有限,肯定存在诸多不足以及技术性错误,请大佬们及时指正. 8.MVCC 多版本并发控制(Multi-Versi ...