首页 > 技术文章 > Java语言基础

andrew037 2020-09-24 16:12 原文

2020-09-13

Java语言基础

一、变量的基础概念

变量是用来记录单个数据内容,则声明一个变量即可,声明的本质就是在内存中申请一个存储单元,该存储单元中的数据内容可以发生改变。由于存放的数据内容大小不一样,导致所需存储单元不一样。

二、变量的声明和使用

1、声明数据类型

2、定义变量的名称

数据类型 变量名 = 初始值;初始值可以省略,但是“;”,不可以省略,"+"表示字符串连接符

三、变量使用的注释事项

1、Java是强类型语言,使用变量之前必须先声明并指定数据类型

2、使用变量之前必须初始化

3、变量不能重复声明

四、标识符的命名法则

1、有数字、字母、下划线以及"$"等组成,其中数字不能开头

2、不能使用Java语言的关键字,如 break、catch、class

3、区分大小写,长度无限制但不宜过长

4、尽量做到见名知意,支持中文但不推荐使用

5、标识符可以给类/变量/属性/方法/包 起名字

五、案例

/*
编程实现变量的输入和输出
*/
import java.util.Scanner;

public class VarIOTest {
public static void main(String[] args) {
//声明两个变量记录姓名和年龄
String name;
int age;

    //提示用户从键盘输入姓名和年龄
System.out.println("请输入您的姓名和年龄信息:");
//创建一个扫描器来扫描键盘输入的内容 System.in 代表键盘输入
Scanner sc = new Scanner(System.in);
//通过扫描器读取一个字符串放入变量name中
name = sc.next();
//通过扫描器读取一个整数数据放入变量age中
age = sc.nextInt();
//输出变量值
System.out.println("name = " + name);
System.out.println("age = " + age);

}

}

优化版

import java.util.Scanner;

public class VarIOTest {
public static void main(String[] args) {
//提示用户从键盘输入姓名和年龄
System.out.println("请输入您的姓名和年龄信息:");
//创建一个扫描器来扫描键盘输入的内容 System.in 代表键盘输入
Scanner sc = new Scanner(System.in);
//通过扫描器读取一个字符串放入变量name中
String name = sc.next();
//通过扫描器读取一个整数数据放入变量age中
int age = sc.nextInt();
//输出变量值,尽可能减少重复代码
System.out.println("name = " + name + ",age = " + age);
//System.out.println("age = " + age);

}

}

六、数据类型分类

1、基本数据类型

byte、short、int、long、float、double、boolean、char

2、引用数据类型

数组、类、接口、枚举、标注

七、常用的进制

1、进制介绍

生活中采用十进制进行数据描述

计算机里层采用0和1组成的二进制序列进行数据的描述

二进制最高位(最左边)用于符号位,0表示非负数,1表示负数

八进制和十六进制都是二进制的缩写

2、进制之间的转换

十进制转换为二进制:除2取余法,不断除以2直到商为0,余数倒序排列;

拆分法,将十进制整数拆分为若干个二进制权重的和,有该权重下面写1,否则写0

二进制转十进制:二进制的每个数字乘以当前权重值累加

负十进制转二进制的方式(得到的是补码):先将十进制的绝对值转换为二进制,然后按位取反再加1

核心思想:负数:需要补码,按位取反再加1

-45 1101 0011

45二进制:0010 1101

按位取反:1101 0010

再加1:1101 0011

负二进制转十进制:先减1在按位取反合并为十进制整数后添加负号,负十进制转二进制的方式逆序

进阶知识点:

正数的原码、反码、补码均是相同的

负数的原码:正数原码基础上,将符号位改成1

负数的反码 :负数原码的基础上,符号位不变,剩下位按位取反

负数的补码:负数反码的基础上加1

八、单个字节表示的整数范围

在计算机中的单个字节表示八位二进制位,其中最高位(最左边)代表符号位,0表示正数,1表示负数

byte:===>-128~127

非负数范围 0000 0000~0111 1111=>0~2^7-1=0~127

负数范围 1000 0000~1111 1111=>-2^7~-2^0=-128~-1

九、整数类型的概念

Java语言中描述整数数据的有;byte、short、int、long,推荐int类型

byte占一个字节表示范围:-2^7~2^7-1=>-128~127

short占2个字节表示范围:-2^15~2^15-1=>-32768~32767

int占4个字节表示范围:-2^31~2^31-1

long占8个字节表示范围:-2^63~2^63-1

十、整数类型的编程使用

1、若描述比long类型还大的数据则使用java.math.BigInteger类型

十一、整数类型笔试考点

int i2 = 25;

byte b2 = i2;

System.out.println("b2 = " + b2) //错误:不兼容的类型,从int转换到byte可能会有损失

十二、浮点类型

java语言中float、double,推荐使用double

float占4个字节,单精度浮点数,可以表示7为有效数字

double占8个字节,双精度浮点数,可以表示15位有效数字

float f1 = 3.1415926;//不兼容类型,从double到float可能会有损失,小数据数据叫直接量

float f1 = 3.1415926f;f1 = 3.1415925 默认是7位有效数字,超出部分会有损失

笔试考点:

System.out.println(0.1+0.2);//打印数据不是0.3,原因浮点型运算时可能会有误差;若希望实现精确运算则借助java.math.BigDecimal;

十三、布尔类型

boolean 数值只有true、false,所占的空间大小没有明确规定,可以认为是1个字节

十四、字符类型

1、描述单个字符数据类型,char类型,如'a','中'等;

2、char在内存空间中占2个字节并且没有符号位,表示的范围是0~65535(32768+32767),现实生活中很少有数据能够被单个字符描述,因此在开发中更多使用多个字符串组成的字符串,使用String类型加以描述,如"hello"等.

3、计算机底层识别0和1,可以给该数据指定编号,该编号就叫ASCII.

十五、字符类型和编码的使用

掌握的ASCII: '0'~48;'A'~65;'a'~97;空格~32;换行符~10;

十六、Unicode字符集的概念和使用

Java 字符类型采用Unicode,Unicode是世界通用的定长字符集,所有的字符都是16位.

十七、转义符

特殊字符的使用,双引号本身有2含义,1、字符串的开头和结尾,2、双引号本身

\ 转义就是转换原有含义

 

十八、自动类型转换的概念和使用

java语言中基本数据类型之间的转换方式:自动类型转换和强制类型转换。

其中自动类型转换主要是指从小类型到大类型之间的转换

byte--->short--->int--->long--->float--->double;

char占两个字节可转换到int,对应ASCII码;

 

十九、强制类型转换的概念和使用

从大类型到小类型之间的转换;强制类型转换可能会损失;

目标类型 变量名 = (目标类型)源类型变量名;

short和char两种相同类型也必须强制转换;

二十、任务总结

推荐阅读