java基础知识01
2021-01-14 15:14
标签:byte code assert ado container 进制 cas java数据类型 数据类型 单行注释 // 多行注释 /* content */ 文档注释 /** this is javadoc comment */ Abstract assert boolean break byte case..... 不可作为变量名或方法名 强类型语言:要求变量的使用严格符合规定,所有变量都必须先定义再使用。安全性较高,速度较慢。(java) 弱类型语言:javascript 基本类型 primitive type 数值类型:整数类型 浮点类型 字符类型char boolean类型 Boolean: 1 bit, true or false Double: 8 bytes Float: 4 bytes Long: 8 bytes int: 4 bytes short:2 bytes byte:1字节 引用类型 reference type 类 接口 数组 字节 位 bit:是计算机内部数据存储的最小单位 字节 byte:是计算机中数据处理的基本单位 1B = 8 bit 整数扩展 进制:二进制0b;十进制;八进制0;十六进制0x (0-9 A-F) binary octal decimal hex 浮点数拓展 float: 有限 离散 舍入误差 结果是一个大约的数 BigDecimal(数学工具类) q:银行业务如何表示? 最好完全避免使用浮点数进行比较 字符拓展 casts 强制转换 所有的字符本质还是数字 八进制转义序列:\ + 1到3位5数字;范围‘\000‘~‘\377‘ \0:空字符 Unicode转义字符:\u + 四个十六进制数字;0~65535 \u0000:空字符 World hello hello world \n 换行符 \t 制表符 转义字符 2字节 65536 (早期的Excel表格的长度 2**16=65536)U0000-UFFFF 编码: unicode表 布尔值扩展 memory overflow 不能对布尔值进行转换 不能把对象类型转换为不相干的类型 在把高容量转换为低容量的时候,强制转换 转换的时候可能存在内存溢出,或者精度问题 注意点 低 -> 高 自动转换 Problem2: 精度问题 高 -> 低 (类型)变量名 强制转换 强制转换 (类型)变量名 高 -> 低 int i = 128; problem1: 内存溢出 memory overflow System.out.println((int)23.7); //23 Problem2: 精度问题 自动转换 低 -> 高 注意点 不能对布尔值进行转换 不能把对象类型转换为不相干的类型 在把高容量转换为低容量的时候,强制转换 转换的时候可能存在内存溢出,或者精度问题 memory overflow char c = ‘a‘; // a int v = c+1; // 98 System.out.println((char)v); //manipulate a large number, attention to overflow problem // First, cast one number to long java基础知识01 标签:byte code assert ado container 进制 cas java数据类型 数据类型 原文地址:https://www.cnblogs.com/ZepeiZhao/p/12940823.htmljava基础语法
注释
标识符
关键字
数据类型
java数据类型
//char
char name = ‘z‘;
//String
String name1 = "a string";拓展
int i = 10; // 二进制 -- 10
int i2 = 010; // 八进制 -- 8
int i3 = 0x10; // 十六进制 -- 16
float f = 0.1f;
double g = 1.0/10;
System.out.println(f); // 0.1
System.out.println(g); // 0.1
System.out.println(f==g); // false
?
float d1 = 23131231421412f;
float d2 = d1+1;
System.out.println(d1==d2); // truechar c1 = ‘A‘;
char c2 = ‘中‘;
System.out.println(c1);
System.out.println((int)c1); //casts强制类型转换
System.out.println(c2);
System.out.println((int)c2);char c3 = ‘\u0061‘;
System.out.println(c3); //aSystem.out.println("hello\tworld");
System.out.println("hello\nworld");
boolean flag = true;
if (flag==true){}
// equal to if(flag){}int i = 128;
byte b = (byte)i; // -128//manipulate a large number, attention to overflow problem
int money = 1_000_000_000; // _ can be used in numbers, it won‘t print
int years = 20;
int total = money * years; //-1474836480 memory overflow
long total2 = money * years; // -1474836480
// the type of money and years is int
// so the default type of total2 is also int
// before casts it to long, the result already got problem
// First, cast one number to long
long total3 = money * ((long)years); //20000000000
char c = ‘a‘; // a
int v = c+1; // 98
System.out.println((char)v); // b
double d = i; //128.0
System.out.println((int)23.7); //23
System.out.println((int)-45.89f); //-45
problem1: 内存溢出 memory overflow
the max value of byte is 127
类型转换
byte b = (byte)i; // -128
the max value of byte is 127
System.out.println((int)-45.89f); //-45
double d = i; //128.0
int money = 1_000_000_000; // _ can be used in numbers, it won‘t print
int years = 20;
int total = money * years; //-1474836480 memory overflow
long total2 = money * years; // -1474836480
// the type of money and years is int
// so the default type of total2 is also int
// before casts it to long, the result already got problem
long total3 = money * ((long)years); //20000000000
下一篇:【算法】【链表】链表相关问题总结