欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java

程序员文章站 2022-06-25 15:54:14
一直都想弄个博客来秀一下,也是想记录一些生活的点点滴滴,而博客园是一个特别适合做博客网站的程序,我的想法是多年以后,我心灵的点点滴滴,都可以在这里找到晕染的痕迹。程序员生活总是和程序有关系的,对我而言,博客园专注于.net,这是一个全新的事物。 ......

基本数据类型(byte,short,int,long,float,double,char,boolean)

  1. byte a=1; //byte 整数,1个字节 -128~127
  2. short b=2; //short 整数,2个字节 -32768~32767
  3. int c=3; //int 整数,4个字节 -2147483648~2147483647
  4. long d=4; //long 整数,8个字节 范围为 -9223372036854775808~223372036854775807
  5. float e=1.2f; //float 浮点型,4个字节,定义时变量后面要加f,因为浮点数系统默认为double型
  6. double f=2.3; //double 浮点型,8个字节
  7. char h=‘d’; //char 字符型,2个字节,定义变量时使用‘ ’(单引号)
  8. boolean a=true; // boolean 布尔型,有两个取值,false和true.

浮点数值问题,小数点后几位 ,DecimalFormat,BigDecimal

DecimalFormat用法,解决精度问题,保留两位小数,得到的结果为String类型。
DecimalFormat decimalFormat = new DecimalFormat("#.##");
String aaa = decimalFormat.format(0.15*111);
System.out.println(aaa);
BigDecimal用法 解决精度问题,这样想乘可以保留计算原有的精度。
double res = BigDecimal.valueOf(106).multiply(BigDecimal.valueOf(0.13))
.doubleValue();
System.out.println(res);

String 解析

String为一个类,强类型,定义方法有:
String a1=“a”; String b1 = new String(“a”);
如果采用String a1=“a”;的定义方法,则声明的变量如果是一个常量,会存储在常量区中,且再次定义相同的常量给一个变量时(如:String a2=“a”;),会把该常量的地址赋给新的变量,所以此时 a== b 为true;

如果采用 String b1 = new String(“a”); 的定义方法,则定义的变量会把变量存储到堆中,每一次定义一个变量都会重新定义,所以地址不一样,于是如果再次定义一个变量 String b2 = new String(“a”); ,则 b1==b2 为false;

注意,当使用Scanner的next()输入时,可以看做是使用 String b2 = new String(“a”); 方法定义变量,会储存到堆中。

所以String如果需要比较值,有一个方法 equals ,如 “a”.equals(b1); 如果值相等则返回true,使用这种方法时,建议把需要比较的字符放在前面,把变量放在后面,原因是变量有可能为null,这样会导致程序报错,后续代码无法执行。

==和equlas的区别

== 基本类型比较值,
String的equals 方法是比较内容本身,和地址无关,
内容相等则返回true.

== 如果相等, 那么 equals 一定相等
反之, equals相等, ==不一定相等

包装类的equals首先判断是否同一类型, 如果类型不同直接false,
还来不及比数据.

包装类和基本数据类型比较的时候, 统一按基本数据类型比较.比较值.

常量池

“啊”,1,2,4数据称为常量,常量池中如果没有第一次会创建该常量,然后返回引用,如果有,直接返回常量的引用,不会再创建

整数常量池中默认只有 -128~127 共256个数. 后续的会在堆中开辟新的.

用户每次new关键字的对象,都会在堆内存中创建
一个新的对象,并返回该新对象的引用.

包装类和基本数据类型的区别?

  1. 包装类可以为null ,原生类不可以为null.
  2. 包装类默认实现了一些方法,方便使用. 原生类没有方法.
  3. 包装类属于强类型, 引用传递. 原生类属于值传递.
  4. (PS:如果包装类要和原生类比较数据, 那么按原生类比较,因为原生类没有地址.)

switch 允许的数据类型

char, byte, short, int, Character, Byte, Short, Integer, String, enum
jdk1.8及以上
jdk1.6及以下不支持String

本文地址:https://blog.csdn.net/Liu_csdn_qp/article/details/107663263

相关标签: java