2-JAVA基础-数据类型

本文深入讲解Java的基础概念,包括关键字的使用、数据类型、运算符、数组等核心内容,并介绍了类与对象的基本定义和特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0JAVA

1.Java两大核心机制 垃圾回收机制和虚拟机JVM

2.Java中关键字含义 java内定的规定的语法关键字赋予了特定的意义,定义一个类的关键字class

3.JAVA区分大小写

1.Java程序基本结构认识

最基本的结构

public class Hello { // 类名是Hello
    // ...
} // class定义结束

{}代码块

;一行语句

[]数组中常用索引标识

()表示方法,类中用

.运用调用方法

//单行注释

/** */多行注释

1.1.类名要求:

  • 类名必须以英文字母开头,后接字母,数字和下划线的组合
  • 习惯以大写字母开头

    类名要求:

  • 类名必须以英文字母开头,后接字母,数字和下划线的组合
  • 习惯以大写字母开头

1.2.变量名要求

变量名名必须以英文字母、数字、_和$的组合

1.必须由字母或下划线或$开头,建议字母开头,虽然其他不会报错

2.命名不能是关键字

常量字母都大写命名为好,为了向JAVA的API标准靠齐(如:int a=Integer.MAX_VALUE;)

 1.3.方法命名基本上同类命名

不同的是小驼峰,小写字母开头

2.变量和数据类型

2.1.八大基本数据类型

特征:int a,b=0;

基本类型不会自动初始化(C语言貌似是相反的)

数值类型

整数类型:存储整数的数值数据

byte short int long

排列顺序:最小的byte,最大的long

存储范围:byte

浮点类型:存储带小数点的数据

float double

字符类型:存储单个字符的数据

char----ASCII值,特别的:‘a'代表整数值,”a“代表字符

布尔类型:存储true和false

boolean

var 为待定基本数据类型(java10,,,目前不确定1.8还有没有)TODO搞清楚

数据的表示范围取决与bit位数:

补码表示,8位:-128~127其他的自行推理

浮点类型:IEEE754,32:1+8+23;64:1+11+52

1:一个符号位

8||11:移码=补码能表示的最大整数+真值

23||52:尾数1.XX,省略1,仅仅存储XX

这也是为什么同样大小的数据类型,浮点型比整型不仅精度高,而且表示的数据范围大。

大转小,要强转,小转大为自转(类似兼容)

如:

long c=55888885;

int a=(int) c;

int b=6;

要想b/a得到浮点数也必须先自转,否则肯定会得到0.

自转一个即可,运算结果选择表示范围大的。

2.2基本封装类、引用数据类型

特征:
 

Object obj=new Object();

 int a[]=new int[x];//x代表多少个,初始化为0

基本封装类:Integer、Long等等八大基本数据类型对应的封装类;

Long到Integer,需要强转。

引用数据类型:

​        类  class   Test类名

​        接口  interface  接口名

​        数组   int[]  数组名

引用数据类型:String、数组(继承Arrays)等等、及自定义的数据类型(类、接口、枚举);

父类转子类类型,需要强转。

易混:特别容易把String和基本数据类型混为一谈,因为他们都是经常用的。

他们最大的区别是:String有API提供的方法使用,而基本数据类型只能作为方法的参数使用,不能调用API。

2.3.字符和字符串

字符是;char 'a',基本数据类型

字符串是:String "a",引用数据类型

character的缩写。一个char保存一个Unicode字符

Java在内存中总是使用Unicode表示字符,所以,一个英文字符和一个中文字符都用一个char类型表示,它们都占用两个字节。

直接用转义字符\u+Unicode编码来表示一个字符:

// 注意是十六进制:
char c3 = '\u0041'; // 'A',因为十六进制0041 = 十进制65
char c4 = '\u4e2d'; // '中',因为十六进制4e2d = 十进制20013

 

特别:

引用类型的变量可以是空值null

要区分空值null和空字符串""

不然会出现重大数据库错误事件。

常见的转义字符包括:

  • \" 表示字符"
  • \' 表示字符'
  • \\ 表示字符\
  • \n 表示换行符
  • \r 表示回车符
  • \t 表示Tab
  • \u#### 表示一个Unicode编码的字符

+连接字符串的符号

2.4.运算

逻辑运算符(非代码使用):⊕(异或),⊙(同或)

整数运算

浮点数运算

布尔运算

运算符:

+,-,*,/,%
&(按位与),|(按位或),^(异或),~(非)
>>,<<(移位运算)
++,--

在比较运算中特别能体现++和— -放在变量前后的不同
前:先+1再比较
后:先比较后+1

比较运算符:

<,>
&&,||,!(非)
==,>=,<=,!=(不等于)
布尔运算中特别注意位置关系,实现短路运算一定程度上加快了执行速度

三元运算符

Java还提供一个三元运算符b ? x : y,它根据第一个布尔表达式的结果,分别返回后续两个表达式之一的计算结果。

封装类中的比较:.equals()

特别的:n%m的运算结果与n的符号有关

溢出:

要特别注意,整数由于存在范围限制,如果计算结果超出了范围,就会产生溢出,而溢出不会出错,却会得到一个奇怪的结果。

特别的:浮点数存在下溢,处理为0,不算错误。

整数运算在除数为0时会报错,而浮点数运算在除数为0时,不会报错,但会返回几个特殊值:

  • NaN表示Not a Number
  • Infinity表示无穷大
  • -Infinity表示负无穷大

Math

Math封装类中有许多运算:

如;Math.sqrt()表示算术平方根

2.5.数组类型

* 数组的概念:可以看做是一个容器,用来装很多东西
 *      可以存储一组相同数据类型的容器,开辟一组连续相同的空间用来存储相同类型的数据
 *      一个班级有20个人
 *      String s = "";
 *      int b = 330;
 *      int  a = 10;
 *
 *      栈区 -- 普通/局部变量
 *      堆区 -- 对象--成员变量
 *      方法区/永久区
 *
 *
 * 数组的定义的几种方式:
 *      1.边声明边指定长度
 *      类型[]  数组名 =  new  类型[指定长度];
 *      例如:int[]  array  = new int[10];
 *      2.快速声明和赋值
 *      类型[]  数组名  =  {值1,值2,值3....};
 *      例如:int[]  array  = {10,20,30};
 *      3.边声明边赋值
 *      类型[]  数组名 = new  类型[]{值1,值2,值3,...};
 *      例如:int[]  array = new int[]{10,20,30};
 *
 * 数组的特点:
 *      1.数组是有索引/下标的,从0开始
 *      2.数组是引用数据类型
 *      3.只能存储一组相同的数据类型的元素,不能存储不同类型的数据
 *      4.数组的长度是固定不变的
 *      5.不能访问超出数组定义的长度范围
 *      6.不能给超过数组的长度进行赋值
 *      7.数组是存储在堆区中的,所以系统会赋予默认值
 *          int  0
 *          double 0.0
 *          char \u0000
 *          boolean  false
 *          String  null
 *      8.可以定义任意类型的数据,引用类型/基本类型
 *      9.数组不能像基本数据类型那样二次赋值,必须带索引。

数组的遍历:
 *
 * 数组的赋值:
 *      数组名[下标] = 值1;
 *      array[0] = 10;
 *      静态赋值法:直接赋值
 *      动态赋值法:通过用户输入赋值
 *
 * 数组的属性:length长度
 * 数组的使用:
 *      数组名[下标]
 * 数组工具类:Arrays
 *      用来方便进行操作数组提供的一个工具类,JavaAPI
 *      数组-排序,查找,拷贝,遍历

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值