栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java基础知识概述

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java基础知识概述

一、关键字和保留字

关键字:具有特殊含义
特点:所有关键字都是小写的

int final等等

保留字:现在未使用,以后可能以关键字使用

goto、const

二、标识符的命名规范

1、定义:凡是可以自己起名字的都是标识符
2、规则

①字母数字下划线或$
②数字不可以开头
③不可以使用关键字和保留字,但可以包含
④严格区分大小写,长度无限制
⑤不能包含空格

3、命名规范

包名:多单词组成时所有字母都小写 xxxyyyzzz
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时,第一个单词的首字母小写,第二个开始每个单词首字母大写:xxxYyyZzz
常量名:所有字母都大写,多单词时每个单词用下划线连接:XXX_YYY_ZZZ

4、注意

①见名知意
②Java采用Unicode字符集,因此标识符也可以用汉字声明,不建议使用

三、变量

1、先声明后使用
2、数据类型 变量名=变量值;
强类型语言
3、说明

①变量必须先声明后使用
②变量都定义在其作用域内,在作用域内,它是有效的,换句话说,出了定义域就失效了
③同一个作用域内,不可以声明两个同名的变量

4、数据类型
①按照数据类型分

基本数据类型:数值型:整数类型(byteshortintlong),浮点类型(doublefloat);字符型(char);布尔型(boolean)
引用数据类型:类(class)–字符串在类中、接口(interface)、数组([])

②整数类型

1 2 4 8字节
long后面要加l/L
byte范围:-128~127
常用和默认int

③浮点型

单精度 4float
双精度 8double
float后面必须加f或F
float表示数值的范围比long还大 ,但是double的精确度高
常用和默认double

④字符型

一字符=2字节
char c1=‘a’;
转义字符

⑤布尔类型

true false
常在条件判断、循环结构中使用
直接使用unicode制表符

5、变量在类中声明的位置
成员变量 vs 局部变量
6、自动类型转换和强制类型转换
这里讨论的只是七种基本数据类型转换,没有布尔类型
①自动类型转换

当容量小的的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的 byte和short和char—> int–> long–> float–> double 从左向右靠
特别的当byte和short和char三种类型的变量做运算时,结果为int
说明:此时的容量大小指的是,表示数的范围的大和小,比如:float容量大于long的容量

②强制类型转换

需要使用强转符()
强制类型转换,可能导致精度损失
(int)12.23=12 损失

7、字符串类型

①引用数据类型
②“”
③string可以和八种基本数据类型做运算,且运算只能是连接运算+ 运算的结果仍然是string类型

四、运算符

1、算数运算符

      • / % ++ –
        前++ ++i:先自增1,然后再运算
        后++ i++:先运算,后自增1

2、赋值运算符

= += -= *= /= %=

3、比较运算符

== != < > <= >= instanceof()检查是否为类的对象

4、逻辑运算符

& | ! && || ^

说明: ①逻辑运算符操作的都是布尔类型的变量,位运算符左右是数值型的
②&与&&的区分
相同点:&与&&的运算结果相同
当符号左边是true的时候,二者都会执行符号右边的运算
不同点:当符号左边是false时,&继续执行符号右边的运算。(短路与)&&不再执行符号右边的运算

5、位运算符(了解)

操作的都是整型的数据 针对二进制数来说的左右移动 向左移后补0 向右移 左补0
每向左移一位 相当于2 右移 /2
左移 3<<2=12–>3
2*2=12
右移 3>>1=1–>3/2=1 最高位时0或1不变
无符号右移 3>>>1=1–>3/2=1 最高位是0(第一个数)
//把其写成二进制 然后用逻辑与或运算 最后出结果
…0 0 0 0
…0 1 0 1
——————
…0 1 0 1
&与运算 6&3=2
| 或 运算 6|3=7
^ 异或运算 6^3=5
~取反运算 ~6=7 0变1 1变0

6、三元运算符(推荐使用)

(表达式)?表达式1:表达式2;
可以嵌套使用
凡是用三元运算符的都可以写成if else的,反之不成立

7、运算符的优先级

五、流程控制

1、分支结构

第一种:
if(条件表达式)
{
执行表达式1;
}
第二种:
if(条件表达式)
{
执行表达式1;
}else
{
执行表达式2;
}
第三种:
if(条件表达式)
{
执行表达式1;
}else if
{
执行表达式2;
}
......
else{
执行表达式n;
}
用键盘输入
①导包:import java.util.Scanner
②Scanner的实例化:Scanner scan=new  Scanner(System.in);
③调用Scanner类的相关方法来获取指定类型的变量
int  num=scan.nextInt();
nextFloat等也行
switch-case结构
switch(表达式){
case 常量1:
     语句1;
     break;
case 常量2:
     语句2;
     break;
     ......
case 常量N:
     语句N;
     break;
default:
     语句;
      break;
}

switch()中的小括号里面,只能是如下的6种数据类型之一:byte、short、char、int、枚举类型、string类型
case后面只能声明常量 效率比if else高

2、循环结构

四个要素: ①初始化条件
②循环条件
③循环体
④迭代条件

第一种
①
while(②)
{
③;
④;
}
第二种
①
do
{
③;
④;
}
while(②)
第三种
for(①;②;④){
③
}

3、break和continue关键字

break:switch-case循环结构种 结束当前循环
continue:循环结构中 结束本次循环

六、数组

1、数组的相关概念
数组名、元素、角标(下标、索引)、数组的长度:元素的个数
2、数组的特点

①数组是有序排列的
②数组是引用变量类型。数组的元素既可以是基本数据类型也可以是引用数据类型
③创建数组对象会在内存中开辟一整块连续的空间
④数组的长度一旦确定不能修改

3、数组的分类

①按照维数:一维数组、二维数组
②按照数组元素的类型:基本数据类型元素的数组、引用数据类型元素的数组

4、一维数组的使用
①一维数组的声明和初始化

//1.1静态初始化:数组的初始化和数组元素的赋值操作同时进行
            int [] num;//声明
            num=new int[]{1,2,3};
           //1.2动态初始化:数组的初始化和数组元素的赋值操作分开进行
            String [] names=new String[5];//初始化
总结:数组一旦初始化完成,其长度就确定了

②如何调用数组的指定位置的元素

0----length-1

③如何获取数组的长度

names.length

④如何遍历数组

for循环

⑤数组元素的默认初始化

值为0  0.0  false  null

⑥数组的内存解析

栈---局部变量   堆---new的内容

5、二维数组的使用

对于二维数组的理解,我们可以看成是一维数组array1又作为另一个一维数组array2的元素而存在
其实,从数组底层来看,没有多维数组

①二维数组的声明和初始化

//1.1静态初始化:数组的初始化和数组元素的赋值操作同时进行
            int [] [] num=new int[][]{{1,2,3},{1,2}};
           //1.2动态初始化:数组的初始化和数组元素的赋值操作分开进行
            String [] [] names=new String[5][2];//初始化
            String [] [] name=new String[5][2];

②如何调用数组的指定位置的元素

arr[ ][ ]

③如何获取数组的长度

.length

④如何遍历数组
⑤数组元素的默认初始化

对于初始化方式1.2.1
外层a[ ]是地址值
内层a[ ][ ]是0
对于初始化方式1.2.1
外层a[ ]是null
内层a[ ][ ]:不能调用,否则报错

⑥数组的内存解析

栈---局部变量  
堆---new的内容   
第一个数组中的每一个小块指向另一个数组
  int [] arr4={1,2,3};正确

6、数组的工具类

在帮助文档中
① boolean equals(int[] a,int[] b) 判断两个数组是否相等。
②String toString(int[] a) 输出数组信息。
③void fill(int[] a,int val) 将指定值填充到数组之中。
④ void sort(int[] a) 对数组进行排序。
⑤ int binarySearch(int[] a,int key) 对排序后的数组进行二分法检索指定的值。

7、数组中常见异常
数组脚标越界异常(ArrayIndexOutOfBoundsException)

int[] arr = new int[2];
System.out.println(arr[2]);
System.out.println(arr[-1]);
访问到了数组中的不存在的脚标时发生。

空指针异常(NullPointerException)

int[] arr = null;
System.out.println(arr[0]);
arr引用没有指向实体,却在操作实体中的元素时。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/865508.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号