【JAVA300】6-10 笔记
2017-07-24 11:05
274 查看
6_标识符_unicode和GBK_各种字符集的关系
标识符:
必须以字母,下划线_,美元符$开头。
其他部分可以是字母,下划线_,美元符$和数字。(包含特殊符号会出错)
java内部采用了Unicode字符集,采用中文一般不会出错。
大小写有区分,但长度无限制。
不可以包含#关键字
不可以数字开头
不可以
字符集简介:
根:ISO8859-1:西欧字符集
(一线)BIG5:台湾的大五码,表示繁体汉字
(二线)GB2312:大陆使用最早,最广的简体简体字符集
(二线)GBK:GB2312的扩展,可以表示繁体中文
(二线)GB18030:GBK的扩展,可以表示各个民族字符
(三线)Unicode:国际通用字符集(UTF-8。UTF-16)
7_整数类型_进制转换_编程中的L问题
基本数据类型:
数值型(整数byte,short,int,long。浮点float,double)
字符型(char)
布尔型(boolean)
引用数据类型:
类(class)
接口(interface)
数组。
byte:1字节:-128到127
short:2字节:-32768到32767(-2^15到2^15-1)
int:4字节:约正负21乙(-2^31到2^31-1)
long:8字节:(-2^63到2^63-1)
●●●●●
int:integer:整数
进制:
八进制:0开头(如010,为8)
十六进制:0x开头(如0x10,为16)
整型常量默认为int
代码的L用大写,易于区分。
代码:
public class TestDataType{
public static void main(string[] args){
int a=10;
int a2=010;
int a3=0x10;
System.out.println(a);
System.out.println(a2);
System.out.println(a3);
System.out.println(Integer.toBinaryString(a)); //转为2进制为字符串
System.out.println(Integer.toOctalString(a)); //转为8进制为字符串
System.out.println(Integer.toHexString(a)); //转为16进制为字符串
int a5=10;
long a6=200;
byte b2=100;//如果数据的大小没超过byte/short/char的表述范围,则可以自动转型(即int转为该类型)
long a7=2200000000L; //如果数据的大小没超过long的表述范围,但超过int表述范围则在数尾加(大写L或小写l)转型。
}
}
输出结果:
10
8
16
1010
12
a
10
200
100
2200000000
8_浮点数_浮点数误差问题
float:单精浮点:4字节:+-3.4*10^38:位数精确到7位有效数字
double:双精浮点:8字节:+-1.7*10^308:位数精确到15位有效数字
科学计数法:314e2=31400 314e-2=3.14
浮点数默认为double,要用float数尾加f
浮点数有误差(精确的BigDecimal大的小数·,BigInteger大的整数)
代码:
public class TestFloatType{
public static void main(String[] args){
double d=3.14; //浮点数常量默认类型是double.
float f=6.28F; //直接转化可能损失精度
double d2=314e-2;
System.out.println(d2);
float f1=0.1f;
double d2=1.0/10;
System.out.println(f1==d2); //双等号比较f1和d2
}
}
输出结果:
3.14
flase
9_char_字符串入门_boolean
char占两个字节,
是来表示Unicode编码中的字符,Unicode有65536个字符,
char是在0-65535之间,运算时当作整数,
反之也可以数字转化成char。
boolean只占一位.不是一个字节。
新手:if(is==trun&&done==false)
以后:if(whether&&!done)
转义符号:
\' 单引号
\"双引号
\\ 反斜杠
\r 回车
\n 换行
\f 走纸换页
\t 横向跳格
\b 退格
点的转义:. ==> u002E
美元符号的转义:$ ==> u0024
乘方符号的转义:^ ==> u005E
左大括号的转义:{ ==> u007B
左方括号的转义:[ ==> u005B
左圆括号的转义:( ==> u0028
竖线的转义:| ==> u007C
右圆括号的转义:) ==> u0029
星号的转义:* ==> u002A
加号的转义:+ ==> u002B
问号的转义:? ==> u003F
反斜杠的转义: ==> u005C
代码:
public class TestCharType{
public static void main(String[] args){
char c1 ='a';
char c2 ='尚'; //unicode 2:0-65535
char c3 ='\''; //'\''输出的是','\\'输出的是\
System.out.print(c1); //不换行
System.out.println(c2); //换行
char c4 = 'a';
int i = c4 + 2;
char c5 = (char)i; //强制转型,因为整数是4个字节,char是2个字节
System.ot.println(i);
System.ot.println(c5);
//循环打印a-z
for(int z=0;z<26;z++){
char temp = (char)(c4+z);
System.out.print(temp);
}
//java里面的字符串,是定义成:String类了。
String str = "safagsgsadgsdgdsgaf";
String.out.println("\n"+str);
boolean b =trun; //false
if(b){ // if(b==trun){
System.out.println("true")
}
}
}
输出结果:
a尚
99
c
abcdefghijklnmopqrstuvwxyz
safagsgsadgsdgdsgaf
true
10_基本数据类型自动转换_强制转型_类型提升问题
自动转化:容量小的数据类型可以自动转化为容量大的数据类型。(表示的范围)
特例:整型常量直接赋值给byte,short,char等类型变量,只要不超过其表数范围
如图,黑色实线为无数据丢失自动转化,红色为可能丢失精度自动转化。
代码:
public class TestCastType{
public static void main(String[] args){
byte b = 123; //在128之内自动转型
//byte b2 = 300; //在128之外报错
//char c = -3;
char c2 = 'a';
int i = c2;
long d01 = 123213;
float f = d01;
//测试强制转型
int i2 = -100;
char c3 = (char)i2;
System.out.println(c3); //-100超过char的表数范围,所以转换成完全不同的值,无意义的值。
//表达式中的类型提升问题
int a = 3;
long b= 4;
double d = 5.3;
int c = (int)(a+b); //做所有的二元运算符(+-/*&),都会有类型提升问题
float f = (float)(a+b);
int money = 1000000000; //10亿
int years = 20;
int total =money*years; //返回的是负数
System.out.println(total);
}
}
标识符:
必须以字母,下划线_,美元符$开头。
其他部分可以是字母,下划线_,美元符$和数字。(包含特殊符号会出错)
java内部采用了Unicode字符集,采用中文一般不会出错。
大小写有区分,但长度无限制。
不可以包含#关键字
不可以数字开头
不可以
字符集简介:
根:ISO8859-1:西欧字符集
(一线)BIG5:台湾的大五码,表示繁体汉字
(二线)GB2312:大陆使用最早,最广的简体简体字符集
(二线)GBK:GB2312的扩展,可以表示繁体中文
(二线)GB18030:GBK的扩展,可以表示各个民族字符
(三线)Unicode:国际通用字符集(UTF-8。UTF-16)
7_整数类型_进制转换_编程中的L问题
基本数据类型:
数值型(整数byte,short,int,long。浮点float,double)
字符型(char)
布尔型(boolean)
引用数据类型:
类(class)
接口(interface)
数组。
byte:1字节:-128到127
short:2字节:-32768到32767(-2^15到2^15-1)
int:4字节:约正负21乙(-2^31到2^31-1)
long:8字节:(-2^63到2^63-1)
●●●●●
int:integer:整数
进制:
八进制:0开头(如010,为8)
十六进制:0x开头(如0x10,为16)
整型常量默认为int
代码的L用大写,易于区分。
代码:
public class TestDataType{
public static void main(string[] args){
int a=10;
int a2=010;
int a3=0x10;
System.out.println(a);
System.out.println(a2);
System.out.println(a3);
System.out.println(Integer.toBinaryString(a)); //转为2进制为字符串
System.out.println(Integer.toOctalString(a)); //转为8进制为字符串
System.out.println(Integer.toHexString(a)); //转为16进制为字符串
int a5=10;
long a6=200;
byte b2=100;//如果数据的大小没超过byte/short/char的表述范围,则可以自动转型(即int转为该类型)
long a7=2200000000L; //如果数据的大小没超过long的表述范围,但超过int表述范围则在数尾加(大写L或小写l)转型。
}
}
输出结果:
10
8
16
1010
12
a
10
200
100
2200000000
8_浮点数_浮点数误差问题
float:单精浮点:4字节:+-3.4*10^38:位数精确到7位有效数字
double:双精浮点:8字节:+-1.7*10^308:位数精确到15位有效数字
科学计数法:314e2=31400 314e-2=3.14
浮点数默认为double,要用float数尾加f
浮点数有误差(精确的BigDecimal大的小数·,BigInteger大的整数)
代码:
public class TestFloatType{
public static void main(String[] args){
double d=3.14; //浮点数常量默认类型是double.
float f=6.28F; //直接转化可能损失精度
double d2=314e-2;
System.out.println(d2);
float f1=0.1f;
double d2=1.0/10;
System.out.println(f1==d2); //双等号比较f1和d2
}
}
输出结果:
3.14
flase
9_char_字符串入门_boolean
char占两个字节,
是来表示Unicode编码中的字符,Unicode有65536个字符,
char是在0-65535之间,运算时当作整数,
反之也可以数字转化成char。
boolean只占一位.不是一个字节。
新手:if(is==trun&&done==false)
以后:if(whether&&!done)
转义符号:
\' 单引号
\"双引号
\\ 反斜杠
\r 回车
\n 换行
\f 走纸换页
\t 横向跳格
\b 退格
点的转义:. ==> u002E
美元符号的转义:$ ==> u0024
乘方符号的转义:^ ==> u005E
左大括号的转义:{ ==> u007B
左方括号的转义:[ ==> u005B
左圆括号的转义:( ==> u0028
竖线的转义:| ==> u007C
右圆括号的转义:) ==> u0029
星号的转义:* ==> u002A
加号的转义:+ ==> u002B
问号的转义:? ==> u003F
反斜杠的转义: ==> u005C
代码:
public class TestCharType{
public static void main(String[] args){
char c1 ='a';
char c2 ='尚'; //unicode 2:0-65535
char c3 ='\''; //'\''输出的是','\\'输出的是\
System.out.print(c1); //不换行
System.out.println(c2); //换行
char c4 = 'a';
int i = c4 + 2;
char c5 = (char)i; //强制转型,因为整数是4个字节,char是2个字节
System.ot.println(i);
System.ot.println(c5);
//循环打印a-z
for(int z=0;z<26;z++){
char temp = (char)(c4+z);
System.out.print(temp);
}
//java里面的字符串,是定义成:String类了。
String str = "safagsgsadgsdgdsgaf";
String.out.println("\n"+str);
boolean b =trun; //false
if(b){ // if(b==trun){
System.out.println("true")
}
}
}
输出结果:
a尚
99
c
abcdefghijklnmopqrstuvwxyz
safagsgsadgsdgdsgaf
true
10_基本数据类型自动转换_强制转型_类型提升问题
自动转化:容量小的数据类型可以自动转化为容量大的数据类型。(表示的范围)
特例:整型常量直接赋值给byte,short,char等类型变量,只要不超过其表数范围
如图,黑色实线为无数据丢失自动转化,红色为可能丢失精度自动转化。
代码:
public class TestCastType{
public static void main(String[] args){
byte b = 123; //在128之内自动转型
//byte b2 = 300; //在128之外报错
//char c = -3;
char c2 = 'a';
int i = c2;
long d01 = 123213;
float f = d01;
//测试强制转型
int i2 = -100;
char c3 = (char)i2;
System.out.println(c3); //-100超过char的表数范围,所以转换成完全不同的值,无意义的值。
//表达式中的类型提升问题
int a = 3;
long b= 4;
double d = 5.3;
int c = (int)(a+b); //做所有的二元运算符(+-/*&),都会有类型提升问题
float f = (float)(a+b);
int money = 1000000000; //10亿
int years = 20;
int total =money*years; //返回的是负数
System.out.println(total);
}
}
相关文章推荐
- Java学习笔记---10.面向对象编程05-面向对象程序的设计步骤
- java笔记-10
- 【Java学习笔记】10:三种系统内建的Annotation
- Java 笔记10
- 黑马程序员 Java基础学习笔记10 内部类
- Java学习笔记18天---(10)
- Java高并发程序设计笔记10之NIO和AIO
- Java学习笔记10 网络编程
- Java基础知识强化之集合框架笔记10:Collection集合使用的步骤
- 【JAVA300】56-60 笔记
- java学习笔记10
- 【JAVA300】16-20 笔记
- (Java学习笔记10)希尔排序
- Java学习笔记_10
- [原]Java程序员的JavaScript学习笔记(10—— jQuery-在“类”层面扩展)
- thinkinginjava学习笔记10_容器
- JAVA学习笔记(10)
- Java学习笔记10 —— 类的构造函数
- Java学习笔记10——Java常用API
- Java笔记10:参数方法