Java数据类型语法和代码块
Posted 布拉莫维奇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java数据类型语法和代码块相关的知识,希望对你有一定的参考价值。
类(class)语法元素
public class HelloWorld{
}
public class 是类修饰词
helloWorld是类名,要与文件名一致
大括号内是类得内容
main方法(main method)语法元素
public class HelloWorld{
public static void main(string[] args){
}
}
public static void是方法修饰词
小括号内是方法的参数(parameter)
String[] args是方法参数
大括号内是方法的内容,又称方法体(method body)
Main方法最为特殊的一点是,它是java程序的入口,就好像游戏的开始按键
System.out.println
public class HelloWorld{
public static void main(String[] args){
System.out.println();
}
}
System.out.println 是java平台提供的类库内容,可以将内容输出到标注输出,在我们的例子里,就是命令行(commandline)
小括号里的内容还是参数列表
没有参数的情况下,System.out.println会输出一行空行,也就是类似我们桥下一个回车键
字符串
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World")
}
}
在java里,双引号引起来的内容叫一个字符串
字符串不是语法内容,可以写任意字符
初识java程序
初识class
java语言中的一等公民,java程序就是一个个的类的组成的
类由修饰符,类名和类的内容组成
类名必须与保存的类原文件的内容相同
初识main方法
main方法是Java程序执行的入口
方法由放大修饰符,方法名,参数列白和方法体等组成
从加减乘除到变量
计算加减乘除
字面值
加减乘除运算符
public class test1 {
public static void main(String[] args) {
System.out.println(5 + 6);
System.out.println(5 - 6);
System.out.println(5 * 6);
System.out.println(5 / 6.0);
System.out.println(1 + 2 * 3 / 4.0 + (5 + 6) / 7.0);
}
}
基本数据类型——int
java中所有的数据都有类型,类型决定了存储的形式和占用的存储空间。举个例子:
微博
博客
连载小说
int用来表示一个整数,取值范围在 -2^31 ~ 2^31-1。计算出来是-2147483648 ~ 2147483647
关键字(key word)和标识符(Identifier)
标识符:
由大小写英文字符,数字和下划线_组成的,区分大小写的,不以数字开头的文字
可以用作Java中的各种东西的名字,比如类名,方法名等
标识符是区分大小写的
关键字是Java语法的保留字,不呢个用来命名
用变量解决问题
变量
如何创建变量
如何给变量一个值
如何使用变量
public class test1 {
public static void main(String[] args){
int a = 1;
int b = 2;
int c = 3;
int x = 0;
int y = a * x + b * (x * x) + c * (x * x * x);
System.out.println(y);
}
}
从加减乘除到变量和语句
java代码三级跳——表达式,语句和代码块
表达式(expression):Java中最基本的一个运算。比如一个假发运算表达式。1+2是一个表达式,a+b也是
语句(statement):类似于平时说话时的一句话,由表达式组成,以;结束。1+2;1+2+3;a+b;都是语句
代码块:一对大括号括起来就是一个代码块
Java是区分大小写的
关键字和标识符都是区分大小写的
类名必须与文件名一致,包括大小写要求
使用变量时,名字必须和声明时的标识符大小写一致
方法名也区分大小写。main和Main是两个名字
类型也区分大小写。int是数据类型,Int不是
System.out.println可以呗Java认识,SYSTEM.Out.Println就不行
字面值不简单
整数的字面值类型默认是int
十六进制字面值和八进制字面值
超过int的范围会怎么样?需要使用范围更大的类型
int x=5;int y=x+1;包含了多少语法点
int x = 5;
关键字、标识符、运算符、字面值、数据类型,Java中的数据都有类型,数据类型有其取值范围、变量的创建和赋值
int y=x+1;
变量的使用,标识符区分大小写、加法运算符、表达式,语句和代码块
Java中的基本数据类型
认识二进制
十进制:每一位可以是0~9这10个值,到10进位一百用十进制表示就是100
二进制:每一位可以是0、1,到2进位,100用二进制表示就是1100100,十就是1010
十六进制:每一位可以是0~F这15个值,到16进位,一百用16进制就是64,十就是A
bit和byte:
一个二进制的位叫做一个bit,俗称小b,宽带中的单位都是小b
八个二进制的单位,组成一个byte,俗称大B,硬盘等存储的单位,都是大B
Byte是计算机中最基本的衡量存储的单位,计算机在对外使用时不会用小b作为划分存储单位
数字的基本数据类型
整数类型
byte占用1个byte,值与是-128~127
short占用2个byte,值域是-32768~32767
int占个byte,值域是-2147483648~2147483647,java中缺省是int型
long占用8个byte,值域是-9223372036854774808~9223372036854774807
浮点(小数)类型
float 有精度,值域复杂±3402823466385288598117041834516925440
double 精度是float的一倍,占用8个byte。Java中浮点数缺省是double类型
符号位
布尔和字符数据类型
boollean占用4个byte,值域是true,false
char占用2个byte,值域是所有字符(最多65535个)
使用各种基本数据类型
public class test1 {
public static void main(String[] args){
byte byteVar = 100;
System.out.println(byteVar);
short shortVar = 30000;
System.out.println(shortVar);
int intVar = 1000000000;
System.out.println(intVar);
long longVar = 80000000000L;
System.out.println(longVar);
float floatVar = 100.0000000666F;
System.out.println(floatVar);
double doubleVar = 100.0000000666;
System.out.println(doubleVar);
boolean booleanVar = true;
System.out.println(booleanVar);
char charVar = \'a\';
System.out.println(charVar);
}
}
Java中的运算符
什么是运算符
运算符对一个或是多个值进行运算,并得出一个运算结果
运算符的运算结果类型有的是固定的,有时候会更具被计算的值变化。比如两个int相加,结果类型就是int。两个byte相加就是byte
除赋值运算符外,运算符本身不会改变变量的值
取模运算符
用来计算余数
负数也可以被取模
负数也可以取模
小数也可以取模
整数的除法运算
int除以int还是int,不会变成浮点数
比较运算符和布尔运算符
比较运算符:
>、>=、<、<=、!=、==
布尔运算符
!、&、&&、|、||
小括号运算符
小括号运算符内可以包含任何运算符,决定运算符顺序
运算符优先级
()
!
*、/、%
+、—
>=、<、<=
==
!=、
&、&&、|、||
=
Java中的位运算符
字面值的八进制和16进制
以0开头的整数为8进制
以0x开头的是16进制
按位运算
并:&
或:|
异或:^
取反:~
位移运算符
>>:符号位不动,其余位右移,符号位后边补零,又称带符号位移
>>>:符号位一起右移左边补0,又称无符号右移
<<:左移,右边补0,左移没有带符号这么一说,应为符号在最左端
位移运算符不会改变原变量的值
按位运算和位移运算都不会改变原本的变量的值
位移运算符的用处
按位运算:掩码
位移运算符:高效除2
基本数据类型的更多语法点
变量要先赋值后使用
不给变量赋值代表什么
声明变量
不赋值使用会怎么样
占用内存,报错
计算并赋值运算符
使代码更简洁,如a = a + 10,简化为a+=10
+=、-=、/=、*=、%=、&=、^=、|=、<<=、>>=、>>>=
数据类型自动转换
不会出现问题的类型转换,编程语言可以做自动类型转化,比如低精度向高精度转换,可以发生再算数运算,也可能发生再赋值
数值精度排序
double>float>long>int>short>byte
char可以转换为int
应为char是无符号数,所以不可以自动转换为short
强制数据类型转换
可能出现问题的类型转换,需要使用强制类型转换,比如高精度向低精度转换、强制类型转换也是操作符、语法是用小括号括起目标类型放在被转换值得前面,强制类型转换会造成数据精度丢失
(目标类型) 值
数值溢出
数值计算一旦已排除,结果失去意义,比如两个正数加出负数,要对值有大概的估计
从数值计算溢出理解程序员和编程语言责任得分界线
编程语言按照语法和计算机交互,程序员理解问题,并转换为程序,程序员解决问题
字符集编码和字符串
什么是字符集和编码
什么是字符集(Charset):
字符得集合,一般会包含一种语言的字符。比如GBK,是包含所有常用汉字字符的字符集,ASCII是包含英文字符的字符集,字符就是Java中的char是charset的简写
什么是编码:
char代表一个字符,char的本质也是数字,将数字映射道字符,就叫编码。编码是有标准的
编码和字符集介绍
常用字符集介绍
ASCII码,ASCII表
Unicode 包含世界上所有常用字符,编码也有几种,包括UTF-8,UTF-16
Unicode,GBK等所有常用字符集,都会兼容ASCII。举个例子,字符A再这些字符集中都是对应数字65
Java中的字符集
Java中是UTF-16的Unicode
当把char转换成数字时需要使用int
ASCII码和转义符(escape character)
如何输出特殊字符
ASCII码+char,将这个数字转换成char,然后输出
转义符。转义符用来给字符赋值,也可以用在字符串里面,作为字符串中的一个字符
转义符语法和常用转义符
\\n,换行符
\\",双引号
\\t,制表符
\\uXXXX,unicode编码对应的字符
字符串的拼接
将变量穿插在字符串中输出
字符串可以和任何类型进行加法运算,会将这个值拼接道字符串上。可以使用+=操作符进行拼接
字符串不是Java中的基本数据类型(String类)
字符串类型的名字叫做String
可以使用String str = "abc"来创建
String不是Java中的保留字
String的拼接不会改变原String变量的值,改变其值要使用赋值语句
打印26个连续的字符
public class test1 {
public static void main(String[] args){
char ch = \'A\';
int num = ch;
System.out.println(num + "\\t" + ((char) num++));
System.out.println(num + "\\t" + ((char) num++));
System.out.println(num + "\\t" + ((char) num++));
System.out.println(num + "\\t" + ((char) num++));
System.out.println(num + "\\t" + ((char) num++));
System.out.println(num + "\\t" + ((char) num++));
System.out.println(num + "\\t" + ((char) num++));
System.out.println(num + "\\t" + ((char) num++));
System.out.println(num + "\\t" + ((char) num++));
System.out.println(num + "\\t" + ((char) num++));
System.out.println(num + "\\t" + ((char) num++));
System.out.println(num + "\\t" + ((char) num++));
System.out.println(num + "\\t" + ((char) num++));
System.out.println(num + "\\t" + ((char) num++));
System.out.println(num + "\\t" + ((char) num++));
System.out.println(num + "\\t" + ((char) num++));
System.out.println(num + "\\t" + ((char) num++));
System.out.println(num + "\\t" + ((char) num++));
System.out.println(num + "\\t" + ((char) num++));
System.out.println(num + "\\t" + ((char) num++));
System.out.println(num + "\\t" + ((