1:System.out.print h和 System.out.println区别
System.out.print 将双引号的内容原样输出,不换行
System.out.println 将双引号的内容原样输出,换行
转义字符
\: 就是转义字符,作用: 将后面普通的字母转换为特殊含义
\n:换行
\t: 距离前面有一个制表符位置
2:变量的作用域:
作用域是指作用范围,变量在什么范围中有效
作用范围就是离它最近的{}
局部变量:定义在方法中
成员变量: 定义在类中,方法外
3:java是一种强类型语言, 每个变量都必须声明其数据类型
Java的数据类型分为两大类:基本数据类型(primitive data type)和 引用数据类型(reference data type)
3.1整型数据类型
//给变量赋值的时候,值可以为不同进制的
int num1 = 12; //默认情况下赋值就是十进制的情况
>
> int num2 = 012; //前面加0 这个值就是八进制
>
> int num3 = 0x12; //前面加上0x或者0X,这个值就是十六进制的
>
> int num4 = 0b10; // 前面加上0x或者oB, 这个值就是二进制的
>
> System.out.println(num1);
>
> System.out.println(num2);
>
> System.out.println(num3);
>
> System.out.println(num4);
3.2:浮点型
float类型又被称作单精度类型, 尾数可以精确到5位有效数字,数值有一个后缀f/F, 没有的话默认为double类型
double数值精度是float的两倍, 后缀可以加上D/d
PS:有效数字指的是从左开始第一个不为0的数到最后一个数
```java
//十进制形式
double f1 = 3.14;
//科学计数法形式
double f2 = 314E-2;
// 浮点类型的变量
float f3 = 3.142345534332f;
double f4 = 3.144555666665634;
// 注意: 最好不要进行浮点类型的比较
float f5 = 0.3F;
double f6 = 0.3;
System.out.println(f1);
System.out.println(f2);
System.out.println(f3);
System.out.println(f4);
System.out.println(f5==f6);
### 3.3:字符型
```java
char ch2 ='A';
System.out.println(ch2);
char ch3 ='4';
System.out.println(ch3);
char ch4 ='中';
System.out.println(ch4);
char ch5 ='?';
System.out.println(ch5);
// 在java中无论: 字母,数字,中文都是字符类型的常量, 都占用2个字节,
char ch6 =' ';
System.out.println(ch6);
// 字符类型,单引号引起来的单个字符
System.out.println("-----------------------");
char ch1 ='\n';
System.out.println("aaa"+ch1+"bbb"); // 换行
System.out.println("aaa\tbbb"); // 制表符
System.out.println("aaa\bbbb"); // \b 向前退一格
System.out.println("aaa\rbbb"); // \r 将光标到本行开头;回车
System.out.println("\"java\""); // \"将双引号原样输出 \'将单引号原样输出 \\ 将\原样输出
false
输出结果
A
4
中
?
aaa
bbb
aaa bbb
aabbb
bbb
"java"
char ch1 ='A';
System.out.println(ch1); //A
System.out.println(ch1 +90); //155
System.out.println(155-ch1); //90
// char 类型我们看到的样子就是它本身的字面常量, 但是底层在进行计算的时候,实际是按照一个码机械能计算的
// 这个码就是ASCII
//之前说char类型是按照unicode码表进行存储的,Unicode兼容了ASCII码, Unicode的前128位置ASCII
```java
char ch2 ='中';
System.out.println(ch2);
System.out.println(ch2+90); //20103
System.out.println(20103);//90
//转换
int num1 = (int)ch2;
System.out.println(num1);
char ch = (char)20013;
System.out.println(ch);
char ch5 =20013;
System.out.println(ch5);
结果
A
155
90
中
20103
20103
20013
中
中
//面试题
```java
char ch6 ='2'+2;
System.out.println(ch6); //4
3.4 布尔型
boolean flag =5==9;
String f ="你好";
System.out.println(f);
System.out.println(flag); //false
3.5数据类型转换
/*
类型的级别(从低到高的)byte, short,char -->int–>long–>float–>double
级别用来做什么?当一个表达式中有多种数据类型的时候,要找出当前表达中级别最高的那个类型,然后其余的类型都转换为
当前级别最高的类型进行计算*/
double d2 =12 +1294L +8.5F +3.81 +‘a’;
System.out.println(d2); // 1415.31
/*
在进行运算的时候:
左=右:直接赋值
左<右:强转
左>右: 直接自动转换*/
// 以下情况属于特殊情形,对于byte,short, char 类型来说,只要在他们的表数范围中,赋值的时候就不需要进行强转,直接赋值即可
byte b =12;
System.out.println(b);//12
byte b2 = (byte)270;
System.out.println(b2); //14 原因是因为byte只支持8位
3.6 final关键字
i
import java.util.Scanner;
/**
* @Auther: heguihui
* @Date: 2021/2/28-02-28-14:53
* @Description: PACKAGE_NAME
* @Version: 1.0
*/
public class final_test {
public static void main(String[] args) {
// 一个变量被final修饰,这个变量就变成了一个常量,这个常量的值就不可变了
// 这个常量就是字符常量, 字符常量的名字全部大写(约定熟成)
final double PI =3.14;
// 使用扫描器Scanner
Scanner sc =new Scanner(System.in);
System.out.print("请输入一个半径:");
int r = sc.nextInt();
double c =2*PI*r;
System.out.println(c);
}
}
4 数据类型转换
a. 自动类型转换
b.强制类型转换
c. 类型提升
4.1:自动类型转换
如果系统可以自动把一种类型的值赋给另一种类型,称为自动数据类型转换,一般是表数范围小的类型赋值给范围大的类型,好比把小瓶子倒入大瓶子, 但是整数王浮点型转换时,可能有精度损失
注意:1.直接 0.0 位double类型 2.运算中小心数据溢出float型需要写成0.0f
4.2 强制类型转换
把大瓶子的水倒入小瓶子中
long longValue = 1000L
int i = (int)longValue
4.3 类型提升
当一个算数表达式包含多个基本类型的值时,整个算术表达式的数据类型将发生自动提升
提升规则:
- byte char short 自动提升至int
2.整个表达式的数据类型自动提升至表达式中的最高数据类型