java基础之java类型
系列文章目录
java基础之java类型
文章目录
- 系列文章目录
- 基本类型
- 自动类型提升
- 引用类型
基本类型
整型
Byte 8位 -2^7~2^7-1 默认值0
Short 16位 -2^15~2^15-1 默认值0
Int 32位 -2^31~2^31-1 默认值0
long 64位 -2^63~2^63-1 默认值0L
(一般整型默认为int)
浮点型
Float 单精度 32位 默认值0.0f
double 双精度 64位 默认值0.0d
(一般浮点型默认为double)
布尔类型
Boolean 只有两个取值,true和false,默认为false
Char类型
Char 16位 是一个单一的Unicode字符最小值为0,最大值为65535。java中一个中文占两个字节,char可以存储一个中文汉字
自动类型提升
小的类型与大的类型进行计算,得到的是大的类型数据,例如:
byte a=1; int b=1; int c=a+b;
double a=1; int b=1; double c=a+b;
小的类型转换成大的类型可以自动转换,反之需要强制转换(会缺失精度),例如:
byte a=1; int b=a;
int a=1; byte b=(byte)a;
引用类型
#Java包装类型
Byte、Short、Integer、Long、Float、Double、Character、Boolean
#将包装类转化为其它类型
Integer i=86;i.doubleValue();i.floatValue();
手动装箱与手动拆箱:
double a=9.4; Double b=new Double(a); double c=b.doubleValue();
Java1.5后引入自动装箱与自动拆箱:
double a=9.4; Double b=a; double c=b;
#将字符串转为基本类型的包装类
String str=”8”;
Integer i=Integer.parseInt(str);
Integer j=Integer.valueOf(str);
#Date类型
获取当前时间:Date now=new Date();
日期格式转换:
String formatGeShi=“yyyy-MM-dd HH:mm:ss”
SimpleDateFormat sdf=new SimpleDateFormat(formatGeShi);
String nowDate=sdf. Format(now);
Date date=sdf.parse(nowDate);
#Calendar类型
该类是一个抽象类,可以通过调用getInstance()静态方法来获取一个Calendar对象。
Calendar c=Calendar.getInstance();
用Calendar获取时间:
获取年:Int year=c.get(Calendar.year);以此类推
Calendar转化为Date类型:
Date now=c.getTime();
获取当前毫秒数:
Long time=c.getTimeInMillis();
当前时间加减:
加一个月:c.add(Calender.MONTH,1);以此类推
#Math类型
Double a=5.55;
Long b=Math.round(a); b=6;//四舍五入
Double c=Math.floor(a);c=5.00//舍一取整
Double d=Math.ceil(a);d=6.00//进一取整
Double e=Math.random();//获取[0-1)之间的随机浮点数
#字符串
在java中,字符串被作为String类型处理,位于java.lang包下面。String类型是final类修饰的,不可变的,所谓的修改只是创建了新的对象,所指向的空间是不同的。
#转化为String类型的三种方法
使用toString()方法;使用String类型的ValueOf()方法;加上一个空字符串。
#在字符串中“==”和equals()的区别
==判断的是两个字符串地址是否相等,equals判断的是两个对象的内容是否相同。但是在比较两个对象的时候,若不重写equals方法,那么这两种比较的都是对象的地址是否相等。
#StringBuilder与StringBuffer类
创建一个可变的字符串的时候,我们应该考虑StringBuilder和StringBuffe,频繁使用String创建对象会造成内存的浪费。
StringBuilder是线程不安全的,而StringBuffer是线程安全的,所以StringBuilder的效率比较高。
#bigDecimal
String 转 bigDecimal:
String a="1231";
BigDecimal Big=new BigDecimal(a);
Big.add(BigDecima bg);//加
Big.subtract(BigDecima bg);//减
Big.multiply(BigDecima bg);//乘
Big.divide(BigDecima bg);//除
Big.pow(BigDecima bg);//乘方
Big.abs();//取绝对值
Big.negate();//取反
Big.compareTo(BigDecima bg);//忽略精度比较,返回值int类型
Big.equals(BigDecima bg);//精确比较,返回值为boolean
Big.setScale(int);//设置小数点精度
Big.setScale(int,int);//添加小数点精度并保留方式
例如:a=a.setScale(3,java.math.BigDecimal.ROUND_HALF_UP)将a的值保留3位精度
#CharSequence(String实现的接口)
String实现CharSequence,StringBuffer和StringBuilder也实现了 CharSequence接口,CharSequence就是字符序列,String, StringBuilder和StringBuffer本质上都是通过字符数组实现的,
CharSequence 是 char 值的一个可读序列。此接口对许多不同种类的 char 序列提供统一的只读访问
java基础之java类型相关推荐
- Java基础笔记 – 枚举类型的使用介绍和静态导入
Java基础笔记 – 枚举类型的使用介绍和静态导入 本文由 arthinking 发表于404 天前 ⁄ Java基础 ⁄ 暂无评论 ⁄ 被围观 1,433 views+ 1.枚举(Enum): JD ...
- java基础之java中的基本数据类型
java基础之java中的基本数据类型 学习java一段时间了,使用java也差不多一年多了,可是对于后续的java的学习真的是后劲不足,或者是说懒惰吧,回想一下这一年多,用java最多的就是Andr ...
- java基础总结-java技术栈快速复习
java基础 java基础概念 java概述和语言背景 java语言是没有sun公司(Stanford University Network:斯坦福大学网络)在1995年推出的计算机语言 java之父 ...
- 【Java基础】· Java基本语法:程序流程控制习题总结
写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...
- 黑马程序员:Java基础总结----Java语言编程规范
黑马程序员:Java基础总结 Java语言编程规范:参考自SUN公司文档 ASP.Net+Android+IO开发..Net培训.期待与您交流! I. 排版规范 A. 规 ...
- JAVA基础之java语法
JAVA基础之java语法 第一个java程序 // HelloWorld类名和文件名相同 public class HelloWorld {// 公开的 static 静态的 void 没有返回值 ...
- 一文带你深入理解【Java基础】· Java基本语法:程序流程控制
写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...
- Java基础篇--Java 数组
Java基础篇--Java 数组 Java 数组 声明数组变量 创建数组 处理数组 For-Each 循环 数组作为函数的参数 数组作为函数的返回值 多维数组 多维数组的动态初始化(以二维数组为例) ...
- Java基础:Java抽象接口
在Java中,一个没有方法体的方法应该定义为抽象方法,而如果一个类中含有抽象方法,则该类必须定义为一个抽象类.接口是功能的集合,同样可看做是一种特殊的数据类型,是比抽象类更为抽象的类,接口只描述所应该 ...
最新文章
- oschina添加ssh公钥一记
- 神奇的marquee--滚动的文字
- 每天学习python 30分钟 -了解python - 看懂#!/usr/bin/python
- Codeforces 988D Points and Powers of Two ( 思维 || 二的幂特点 )
- asp.net 打印控件之报表
- 190601每日一句
- wifi大师小程序独立版3.0.8源码
- iOS开发之高仿斗鱼tv初探
- 免实名的域名有吗?域名实名制认证有哪些要求?
- LeetCode初级算法之数组:36 有效数独
- Okra框架(二) 搭建Socket服务器
- 汽车驾驶技巧-倒车入库技巧图解-怎样倒车入库
- AVI文件数据流操作
- c++编程题2——ISBN计算识别码
- OpenStack Tracker
- 输入正整数n,输出n层数字金字塔。
- flink-cdc 环境搭建 version 1.14.3
- 2.光栅图形显示技术
- Visual Studio最有用(未充分利用)的提示
- 织梦网站翻页php,Dedecms织梦如何实现键盘翻页的功能
热门文章
- 改进YOLOv5系列:13.添加CrissCrossAttention注意力机制
- 爱情应该给人一种自由感,而不是囚禁感
- 如何在 Vue 中使用 Chart.js - 手把手教你搭可视化数据图表
- 英语作文计算机国际会议开幕词,英语学术会议开幕词
- 数据库SQL语句 快速入门(一)
- docker出现Error starting userland proxy: listen tcp4 0.0.0.0:3306: bind: address already in use的解决方法
- 用python写情书_用Python给喜欢人的发一封邮件吧(群发)
- 大数据入门培训之大数据开发基础知识学习
- [Linux] date命令
- C++模板函数的声明和定义是否可以分开?