Java开头所写代码
Java中每个类都可以用main函数作为启动入口,不必像c语言那样要对其他项目的main进行区别
Java数据类型
基本数据类型
使用8个关键字声明,结构简单的
数值型(Java各整数类型不受操作系统影响)
整数 byte(1字节)=8个比特位 127
short(2字节) =
int (4字节)
long(8字节)
Java中整数字面量默认是int型,一般声明long类型时在字面量后加L
int a =0b11;其中 a打印出来是3,因为0b开头一般是2进制
int a =0x11;其中a打印出来是17,因为0x开头是16进制
int a=011;其中a打印出来是9,因为0开头是8进制
浮点:有两种表现形式 十进制数 科学计数法
float (4字节)定义float类型需要在字面量后加f或F因为Java中浮点数字面量会默认为double类型
double (8字节)
在Java实际开发中,float double用的比较少
字符型
char
char a='a';只能表示单个字符,大小是2字节,可以表示世界上每一个字符
char a='中';
char类型可以进行算术运算,运算时,实际上用的是字符在编码表中的十进制编号运算
计算机底层只认识二进制,不认识字符,每个字符在底层的编码表中有对应的整数符号
Unicode编码 将世界上每一个字符都纳入其中。
布尔型
boolean
一般用于程序流程控制,适用于逻辑运算。
Java中boolean只允许取值true或者false。不可以用0或非0
引用数据类型
用系统中的类作为类型 例如String 类似于c语言的结构体
使用一对”来表示一个字符串,内部包括0个或多个
String str="abcd" 底层与c语言一致使用数组存储字符
运算规律
基本数据类型转换
默认转换(小容量类型转换为大容量类型)
char运算
char类型可以运算因为char在字符编码表中有对应的数值
char a='c'+1;先将c提升为int类型再进行运算。
byte a=127;
int b=a;
long c=b;
float d=c; //4个字节的float类型 容量大于八个字节的long,原因是小数和整数在底层的二进制存储计算方式不同
double e=c;
小类型的转换为大类型的,可以自动转换。
强制转换
//大容量类型转换为小容量类型
可能会出现问题:1.溢出了
输入下列代码结果会不会不同
虽然看起来很正常 但是10在byte中不会溢出若输入一个远大于byte容量的数
结果是
那麽为什么会变成这样呢
byte小容量的类型只会显示一个字节的二进制数,第一位是符号位0代表正数,结果溢出存储为2
若float=10.55f被强制转化为int类型只会显示整数部分,即精度缺失。
运算符
算术运算符
+ 1.加法运算 2.连接(数值+字符串)(字符串+字符串) 3.正负号
- 1.减法 2.负号
++:自增1 e++先进行运算再自增,++e先进行自增再运算
--:自减1 e--先进行运算再自减,--e先进行自减再运算
*
/
%
比较运算符
== ,!=:用于数值与数值之间比较 还可以用布尔值与布尔值 还可以用于引用类型和引用类型
例子如下
<
>
>=
<=
这四个只能比较数值与数值(char)的大小
逻辑运算符
逻辑运算:逻辑值
&:逻辑与
&&:逻辑与(短路与) 遇到false后,不会继续运行后面的表达式
与中两者有一个为假则全部为假
|:逻辑或
||:逻辑或(短路或) 遇到true后,不会继续运行后面的表达式
或中两者有一个为真则全为真
!:逻辑非
^:逻辑异或(相同为假,不同为真)
赋值运算符
=:负值时,注意左右两边数据类型一致,不同时要遵循数据类型转换规律
注意==和=之间的区别
a+=5//a=a+5
short a=3;//隐式类型转换 int----->byte short
a=a+2;//会出错 a为short型,2为int型, short=short+int-------->int
a+=2;//会隐式类型转换 short=(short)int
int i=1;
i*=0.1;隐式类型转换 不会出错,i最后是0。
条件运算符
语法
(条件表达式)?表达式一:表达式二;
条件为true,运算后的结果是表达式一
条件为false,运算后的结果是表达式二
控制台输入
先输入Scanner使头文件出现import Java.util.Scanner;
然后继续写 new在Scanner之前再在其之后写(System.in);创建类的对象
Scanner Scanner=new Scanner(System.in)//创建一个输入功能的对象
String name=Scanner.next();// 读入控制台调用Scanner函数写字符串
nextInt()指的是输入的是整数型
然后在控制台输入相应内容
位运算符
控制语句
● 条件语句 - 根据不同条件,执行不同语句。
● if ● if .. else
● if .. else if
● if .. else if .. else if .. else
● switch
● 循环语句 – 重复执行某些动作
● for
● while
● do .. while;
switch语句
switch语句:多分支选择语句,根据表达式的值,来执行多个操作中的一个。
switch (表达式)
{
case value1: 语句序列1;
[break];
…………
case valueN: 语句序列N;
[break];
[
default : 缺省语句;
]
}
表达式可以是byte、short、int、char、枚举类型、String类型;
case语句后面只能使用常量表达式;
case后的值不能重复;
某个case分支如果没有提供break语句,则继续执行下一个case后的语句;
当表达式的值与任一case子句中的值都不匹配时,将执行default后面的语句; 如果没有default子句,则程序直接跳出switch语句。
循环
● 循环语句分类
while 循环
变量初始化;
while(条件表达式){
循环体
迭代部分
}
do/while 循环
do
{ 循环体
迭代部分
}
while(条件表达式)
for 循环