Java的基本数据类型和运算方法(必看篇)

编码

ASCII--0~127 65-A 97-a

西欧码表---ISO-8859-1---0-255---1个字节

gb2312----0-65535---gbk---2个字节

Unicode编码体系---utf-8---3个字节

中 f

bit位 Byte字节 1Byte = 8bit 1KB=1024B MB GB TB PB---计算机中存储单位

常量

整数常量---所有的整数 3,99,107

小数常量---所有的小数 3.5 100.9

字符常量---用单引号将一个字母、数字、符号标识起来 ‘a' ‘=' ‘ '

字符串常量---用双引号将一个或者多个字符标识起来 “abc” “234” “q2” “”

布尔常量---用于表示逻辑值---true/false

空常量---null

5-整数, 5.0-小数 ‘5'-字符 “5”-字符串 ‘5.0'-写法错误 “5.0”-字符串

进制

二进制:满二进一,0~1 1+1=10 0b10011 0b0011,从JDK1.7开始,允许以0b作为开头来标识一个数字是一个二进制数字

八进制:满八进一,0~7, 7+1=10 要求必须以0作为开头 06 015

十进制:满十进一,0~9

十六进制:满十六进一,0~9,,A~F,9+1=A f+1=10 要求以0x作为开头 0x5 0xad

进制的转换

十进制转换成二进制:不断除以2取余,然后将余数倒排

二进制转换成十进制:从低位次起,按位次乘以2的位次次幂,然后求和

二进制转换成八进制:从低位次起,每三位划分为一组,不足三位补0,产生一位八进制数字,将这些数字按序排列即可

八进制转换成二进制:一变三---一位八进制数字产生三位二进制数字

二进制转换成十六进制:四变一的过程

变量

System.out.println(i);

int i = 5;---不行---变量必须先声明在使用

int i;

System.out.println(i);---不行----变量在使用之前必须先初始化

数据类型

基本数据类型

数值型

整数型

byte---字节型---1个字节--- -2^7~2^7-1 --- -128~127

byte b = 5; byte b2 = -128;

short---短整型---2个字节--- -2^15~2^15-1 --- -32768~32767

short s = 54; short s = -900;

int---整型---4个字节--- -2^31~2^31-1

int i = 100000;

int j = 100_000_000;--从JDK1.7开始是允许的。在编译的时候会自动忽略这些_ -> int j = 100000000;

int i = 00001111;---八进制

Java中整数默认类型就是int

long---长整型---8个字节--- -2^63~2^63-1---以L作为结尾标识这个数字是一个long类型的数字

long l = 3L;

浮点型

float---单精度---4个字节---必须以f作为结尾

float f = 3.2f;

double---双精度---8个字节

Java中小数默认是double类型

double d = 3.5;

double d = 4.6D;---可以

double d = 3.9e4; //是十进制的科学计数法

double d = 0x3p2; //是十六进制的科学计数法 -> 12

字符型

char---2个字节--- 0 ~65535

char c = ‘a';

char c = ‘中';

布尔型

boolean---true/false

boolean b = false;

引用数据类型

类---class 接口---interface 数组---[]

数据类型的转换

隐式转换/自动类型转换

byte b = 100;

int i = b;

long l = 63;---可以---当整数的值在int类型的范围内的时候,可以不用添加L这个结尾

规律一:小的类型可以转化为大的类型---byte->short->int->long float->double

int i = 5;

float f = i;

long l = 6;

float f = l;

规律二:整数可以转化为小数,但是可能产生精度损失

char c = ‘a';

int i = c;

规律三:字符型可以转化为整型

short s = ‘a';---可以

char c = 100;---可以

char c = ‘a';

short s = c;---不可以

定义了char类型的变量c,存储的数据是一个字符,不需要检查具体的字符编码,当赋值给short类型的时候,short需要检查这个字符对应的编码是否在short类型的取值范围内,这个时候无法确定这个字符对应的具体编码,由于short类型的取值范围和char类型没有完全重合,为了防止出现超过范围的情况,不允许赋值。

short s = 97;

char c = s;--不可以

显式转换/强制类型转换

long l = 54;

int i = (int)l;

double d = 3.5;

int i = (int)d;---小数强转成整数的时候,小数部分直接舍弃

double类型不能精确存储小数

Hexadecimal--十六进制

Decimal--十进制

Octal---八进制

Binary--二进制

运算符

算术运算符

+加 -减 *乘 /除 %取模 ++自增 --自减 +字符串拼接

int i = 5210 / 1000 * 1000;--->i = 5000;

注意:

1. 整数运算完成之后结果一定是整数

2. 整数除以0的时候,编译通过,运行报错---ArimeticException---算术异常

3. 小数除以0的结果是Infinity

4. 0/0.0的结果是NaN---Not a Number---非数字

5. byte/short类型在运算的时候会自动提升为int类型

%取余运算

-5%3=-2 -4%3=-1 -3%7=-3

5%-3=2 7%-2=1 2%-8=2

-5%-3=-2 -9%-3=0

对于负数的取余,先按照正数的取余运算,看取余符号左边的数字的符号,如果左边是负数,那么结果就是负数

5%1.2=0.2 6%1.3=0.8

4.3%1.4=0.1

++/--

对于++在原来的基础上自增1

int i = 5;

int j = ++i;---> i自增1,然后将i的值赋值给j---先自增,再运算

int j = i++;--->先获取i的值5,i自增变成6,然后将获取的值5赋值给j---先运算,再自增

int i = 3;

int j = ++i * 2;-> j = 8;

int j = i++ * 2;->j = 6

int i = 6;

int j = i++ + ++i;->i = 8; j = 14;

int j = ++i + i++;->i = 8; j = 14

byte b = 5;

b++;---JVM在底层会对结果进行强制类型转换,将结果再转换为byte类型

char c = ‘a';

System.out.println(c + 4);--可以

char c2 = ‘d';

System.out.println(c + c2);---提升为int类型之后再进行运算

+ 字符串拼接运算

“a” + “b”---> “ab”

“a” + 3---> “a3”

“a” + true-> “atrue”

2 + 4 + “f”-> “6f”

“f” + 2 + 4-> “f24”

赋值运算符

= += -= *= /= %= &= |= ^= <<= >>= >>>= ~=

int i= 5;

i += 3; -> i = i + 3; -> i = 8;

i -= 2;-> i = i - 2;-> i = 3;

int j;

j += 4;---不行

int i = 5;

i += i -= i *= 5;--> i = -15;

i = 5 + ( 5 - (5 * 5)) ;

i += i -= i *= ++i;--->i = -20;

i += i*= i-= (i++ + --i);---> i = -20;

i = 5 + ( 5 * (5 - (5 + 5)));

byte b = 5;

b += 3;---可以

byte b = 125;

b += 3;---可以--- -128

比较/关系运算符

==相等 !=不等 > < >= <= instanceof

3 == 4;-> false

instanceof---判断对象与类的关系的--只能用于引用数据类型

String s = “abd”;

System.out.println(s instanceof String);---true

System.out.println(“def” instanceof String);---true

逻辑运算符

用于运算逻辑值

&与 |或 !非 ^异或 &&短路与 ||短路或

true&true=true true&false=false false&true=false false&false=false

true|true=true true|false=true false|true=true false|false=false

!true=false !false=true

true^true=false true^false=true false^true=true false^false=false

对于&&,如果前一个表达式的值为false,那么就能确定整个表达式的值为false,&&后边的运算就不再进行了

三元/三目/条件运算符

逻辑值?表达式1:表达式2

如果逻辑值为true,执行表达式1;反之执行表达式2

int i = 5, j = 7;

i > j ? System.out.println(i): System.out.println(j);---不行!三元运算符运算完成之后必须有结果!

double d = i > j ? i * 2.5 : j;---两个表达式的返回值类型要么一致,要么相容

从控制台获取数据

import java.util.Scanner; //写在package之下,class 之上

Scanner s = new Scanner(System.in);

int i = s.nextInt();

double d = s.nextDouble();

String str = s.nextLine();

String str2 = s.next();

以上这篇Java的基本数据类型和运算方法(必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Java中八种基本数据类型的默认值

    通过一段代码来测试一下 8种基本数据类型的默认值 package dierge; public class Ceshi { int a; double b; boolean c; char d; float f; byte e; long h; short j; public static void main(String args[]){ Ceshi a=new Ceshi(); System.out.println("整型的默认值是:"+a.a); System.out.print

  • JAVA中的基本数据类型

    byte: java中最小的数据类型.1字节/8位.-128(2^7)~127(2^7-1),默认值0. short: 短整型,2字节/16位,取值范围-32768(--2^15)~32767(2^15-1),默认值0 int: 整型,4字节/32位,取值范围-2147483648(-2^31)~2147483647(2^31-1),默认值0 long: 长整型,8字节/64位,-2^63(-2^63)~2^63-1(2^63-1),默认值0L float: 浮点型,4字节/32位,用于存储带小

  • Java中基本数据类型与流

    Java中除了二进制文件和使用文本文件外还有基于Data的数据操作,这里的Data指的是Java的基本数据类型和String.基本数据类型包括byte.int.char.long.float.double.boolean和short. 说到Java的基本数据类型必须谈到的两个类是DataInputStream和DataOutputStream.它们提供了对Java基本数据类型的操作,但是这些方法事实上是在两个重要的接口中定义的DataInput和DataOutput,它们的功能就是把二进制的字节

  • java的基本数据类型及属性

    数据类型 大小 范围 默认值 byte(字节) 8 -128 - 127 0 shot(短整型) 16 -32768 - 32768 0 int(整型) 32 -2147483648-2147483648 0 long(长整型) 64 -9233372036854477808-9233372036854477808 0 float(浮点型) 32 -3.40292347E+38-3.40292347E+38 0.0f double(双精度) 64 -1.79769313486231570E+30

  • Java4Android开发教程(五)java的基本数据类型特征

    java的数据类型分为基本数据类型和引用数据类型.   基本数据类型分为数值型.字符型(char).布尔型(boolean)   数值型变量   1.整数型 类型 占用存储空间 表示范围 byte 1字节Byte -128~127 short 2字节 -215~215-1 int 4字节 -231~231-1 long 8字节 -263~263-1 Java的整型常量的三种表示形式: -   十进制整数,如12,-31   - 八进制整数,以0开头,如012   - 十六进制数,以0x或0X开头

  • Java基本数据类型与对应的包装类(动力节点java学院整理)

    Java是面向对象的编程语言,包装类的出现更好的体现这一思想. 其次,包装类作为类是有属性有方法的,功能比基本数据类型要强大. Java语言提供了八种基本类型.六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型. 1.整数:包括int,short,byte,long ,初始值为0 2.浮点型:float,double ,初始值为0.0 3.字符:char ,初始值为空格,即'' ",如果输出,在Console上是看不到效果的. 4.布尔:boolean ,初始值为false 注

  • JAVA基础之基本数据类型全面解析

    基本数据类型: 一.数值型 1)整数: 1.byte一个字节,8位,取值范围0~255,用于存放二进制数据. 2.short两个字节,16位,取值范围是在-32768~32767之间. 3.int四个字节,32位,取值范围为-2147483648~2147483648之间 4.long八个字节,64位,取值范围为 -9,223,372,036,854,775,808 ~9,223,372,036,854,775,807之间 2)浮点型: 1.float,四个字节,单精度浮点数,范围为-2^128

  • Java字节流与基本数据类型的转换实例

    在实际开发中,我们经常遇到与嵌入式进行通信的情况,而由于一些嵌入式设备的处理能力较差,往往以二进制的数据流的形式传输数据,在此将这些常见的转换做一总结. 注意:默认传输时使用小端模式 将字节流转换为int类型数据 public static int getInt(byte[] bytes) { return (0xff & bytes[0]) | (0xff00 & (bytes[1] << 8)) | (0xff0000 & (bytes[2] << 16

  • Java基本数据类型(动力节点java学院整理)

    1. 数据类型: 在Java源代码中,每个变量都必须声明一种类型(type).Java数据类型(type)可以分为两大类:基本类型(primitive types)和引用类型(reference types).primitive types 包括boolean类型以及数值类型(numeric types).numeric types又分为整型(integer types)和浮点型(floating-point type).整型有5种:byte short int long char(char本质

  • Java中int与integer的区别(基本数据类型与引用数据类型)

    一.先说说int与integer的区别 int 是基本数据类型,默认值为0,不需要进行实例化 integer 是引用数据类型,是int的封装类型,默认值为null,创建该类型需要进行实例化. 基本数据类型是可以用"=="进行比较,而引用数据类型则不可以,一般是通过equals方法来实现比较. 二 .再说说基本数据类型与引用数据类型的区别? 特点: 1.从概念方面来说 基本数据类型:变量名指向具体的数值引用数据类型:变量名指向存数据对象的内存地址,即变量名指向hash值 2.从内存构建方

  • Java基本数据类型与封装类型详解(int和Integer区别)

    int是java提供的8种原始数据类型之一. Java为每个原始类型提供了封装类,Integer是java为int提供的封装类(即Integer是一个java对象,而int只是一个基本数据类型).int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况,例如,要想表达出没有参加考试和考试成绩为0的区别,则只能使用Integer.在JSP开发中,Integer的默认为null,所以用el表达式在文本框中显示时,值为空白字

随机推荐