系列文章目录

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类型相关推荐

  1. Java基础笔记 – 枚举类型的使用介绍和静态导入

    Java基础笔记 – 枚举类型的使用介绍和静态导入 本文由 arthinking 发表于404 天前 ⁄ Java基础 ⁄ 暂无评论 ⁄ 被围观 1,433 views+ 1.枚举(Enum): JD ...

  2. java基础之java中的基本数据类型

    java基础之java中的基本数据类型 学习java一段时间了,使用java也差不多一年多了,可是对于后续的java的学习真的是后劲不足,或者是说懒惰吧,回想一下这一年多,用java最多的就是Andr ...

  3. java基础总结-java技术栈快速复习

    java基础 java基础概念 java概述和语言背景 java语言是没有sun公司(Stanford University Network:斯坦福大学网络)在1995年推出的计算机语言 java之父 ...

  4. 【Java基础】· Java基本语法:程序流程控制习题总结

    写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...

  5. 黑马程序员:Java基础总结----Java语言编程规范

       黑马程序员:Java基础总结        Java语言编程规范:参考自SUN公司文档  ASP.Net+Android+IO开发..Net培训.期待与您交流!  I.   排版规范 A.  规 ...

  6. JAVA基础之java语法

    JAVA基础之java语法 第一个java程序 // HelloWorld类名和文件名相同 public class HelloWorld {// 公开的 static 静态的 void 没有返回值 ...

  7. 一文带你深入理解【Java基础】· Java基本语法:程序流程控制

    写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...

  8. Java基础篇--Java 数组

    Java基础篇--Java 数组 Java 数组 声明数组变量 创建数组 处理数组 For-Each 循环 数组作为函数的参数 数组作为函数的返回值 多维数组 多维数组的动态初始化(以二维数组为例) ...

  9. Java基础:Java抽象接口

    在Java中,一个没有方法体的方法应该定义为抽象方法,而如果一个类中含有抽象方法,则该类必须定义为一个抽象类.接口是功能的集合,同样可看做是一种特殊的数据类型,是比抽象类更为抽象的类,接口只描述所应该 ...

最新文章

  1. oschina添加ssh公钥一记
  2. 神奇的marquee--滚动的文字
  3. 每天学习python 30分钟 -了解python - 看懂#!/usr/bin/python
  4. Codeforces 988D Points and Powers of Two ( 思维 || 二的幂特点 )
  5. asp.net 打印控件之报表
  6. 190601每日一句
  7. wifi大师小程序独立版3.0.8源码
  8. iOS开发之高仿斗鱼tv初探
  9. 免实名的域名有吗?域名实名制认证有哪些要求?
  10. LeetCode初级算法之数组:36 有效数独
  11. Okra框架(二) 搭建Socket服务器
  12. 汽车驾驶技巧-倒车入库技巧图解-怎样倒车入库
  13. AVI文件数据流操作
  14. c++编程题2——ISBN计算识别码
  15. OpenStack Tracker
  16. 输入正整数n,输出n层数字金字塔。
  17. flink-cdc 环境搭建 version 1.14.3
  18. 2.光栅图形显示技术
  19. Visual Studio最有用(未充分利用)的提示
  20. 织梦网站翻页php,Dedecms织梦如何实现键盘翻页的功能

热门文章

  1. 改进YOLOv5系列:13.添加CrissCrossAttention注意力机制
  2. 爱情应该给人一种自由感,而不是囚禁感
  3. 如何在 Vue 中使用 Chart.js - 手把手教你搭可视化数据图表
  4. 英语作文计算机国际会议开幕词,英语学术会议开幕词
  5. 数据库SQL语句 快速入门(一)
  6. docker出现Error starting userland proxy: listen tcp4 0.0.0.0:3306: bind: address already in use的解决方法
  7. 用python写情书_用Python给喜欢人的发一封邮件吧(群发)
  8. 大数据入门培训之大数据开发基础知识学习
  9. [Linux] date命令
  10. C++模板函数的声明和定义是否可以分开?