JavaSE基础精选-1基础语法

简介: JavaSE基础精选-1基础语法

基础语法

数据类型

注意点:

1.char在java中可以与int混用,可以自动转换;byte、short、char在计算的时候一律自动转换为int进行计算;char只能自动转成int,和byte和short之间不存在自动转型

2.低等级的数据类型可以向高等级的数据类型自动转换,但高等级的转低等级的需要强转,如果强行用低等级的接收高等级的,会报错。

3.如果用的是二维运算符来运算,就不会出现类型不符合而报错,原因是java会自动转换类型(此时用什么接收,转换的就是哪个类型)

例如:

byte a = 10;
double b = 200.0;
a +=  b;

此时如果用a来接收最后的结果,那么就会自动转成byte类型,然后会由于数值溢出得到一个负数。如果用b接收最后结果,那就会转成double类型,不会存在异常

4.浮点数会存在精度问题

5.boolean不参与类型转换,包括强制

6.表达式中的类型提升会自动将类型提升到最大的那个

7.一旦表达式中存在任何一个变量,整个表达式都不能当做常量,编译器无法自动处理

8.仅仅声明的变量是无法使用的,编译器不会开辟内存空间

标识符

区分大小写、不能以数字开头、不能是关键字和保留字

可以用$和—,也可以用中文,Unicode 字符集中符号大于0xC0的所有符号都可以用

运算符

算术运算符

1.整型除以整型得到的结果会自动舍去小数部分

2.自增自减只能用于变量,如果在前面的话就表示先运算再赋值,如果在后面就是先赋值再运算

赋值运算符

1.二元的赋值运算符表示先进行计算之后再赋值

2.左移就是乘2,右移就是除2

3.二元运算符会自带强转,会出现精度丢失

比较运算符

返回一个布尔类型,注意与赋值运算符进行区分

逻辑运算符

短路:如果第一个结果就能得出表达式的值,那么就不需要继续向下判断了

实际开发中,直接使用短路的 &&、||

三目运算符

a > b ? a : b

通俗的理解:a大于b吗?是则返回a,不是则返回b

Scanner

在使用Scanner的时候,如果出现next()系列的方法和nextLine()混用,会出现因为判断的标志不同而导致扫描出现问题

Scanner sc = new Scanner(System.in);
sc.nextInt();
sc.nextLine();

先使用next()Int然后使用next()Line,这样就会造成后面的nextLine接收到回车后立马结束扫描;

nextLine()会把nextInt(),next(),nextDouble(),nextFloat()的结束换行符作为字符串读入,进而不需要从键盘输入字符串nextLine便已经转向了下一条语句执行

究其原因:next()系列的方法只会读取数值,不会读取空格、换行符等符号,而nextline会读取前面留下的数据,这样就会将换行符传给后面的nextline导致运行结束

如果两个nextline连用的话,line会将换行也一起读取,就不会出现错乱了

不要将nextLine和next系列方法混用

转义字符

常用的:\b退格,\n换行,\r换行,\t就是TAB,

流程控制

break:中断

continue:继续(中断一次循环)

return:直接返回,结束方法

如果有嵌套,可以使用label

如果是在方法中使用if…else,那么一定要注意是否给出了所有情况下的返回值

方法重载

即同名方法;

一个类中的多个方法具有相同的方法名,但形参列表不同,这就是方法重载

形参列表(方法签名)不同的定义:

形参数量不同/形参的数据类型不同/形参数据类型的顺序不同

一定要注意:和形参的名字无关,和返回值类型、修饰符无关,只看形参列表是否不同

方法的传参

Java中所有的方法都是值传递,如果传入的是基本数据类型,就会复制一份该变量的值在方法中,方法销毁,该复制值也会随之销毁;如果传入的是引用数据类型,会拷贝该引用数据类型指向的地址值,但不能修改引用的指向的地址值,可以修改该引用指向的对象,即改变对象的状态

数组

数组是随机访问,根据数组的首地址和下标,使用寻址公式可以计算出对应的内存地址

数组的内存空间是连续的

动态初始化:初始化时不给出具体值,数组中的元素都具有默认值

静态初始化:初始化时给出具体值

注意:不可以动静结合

数组一旦初始化完毕,长度就不可以更改

常见异常

1.下标越界

2.空指针

当使用指向null的引用进行一系列操作时,就会出现空指针

长度为0和null的数组

数组未初始化是无法使用的,但长度为0和null的数组可以认为是经过了初始化的

可变参数

只能出现在形参列表的最后,本质上还是一个参数的数组,

格式: 数据类型… 变量名

JVM内存

:存放方法以及其中的局部变量

每当执行一个方法,都会将该方法的栈帧压入栈中,方法执行完毕后,栈帧销毁,其中的局部变量也随之失效

:new出来的对象都存放在堆上,对应有地址值,用来给外界访问,引用数据类型引用的就是这个地址值

方法区:

本地方法栈:存放的是本地的方法,即操作系统提供的方法

程序计数器:记录当前执行的行数

目录
相关文章
|
分布式数据库 数据库
数据同步并发控制与数据一致性
数据同步并发控制与数据一致性
309 3
|
消息中间件 缓存 NoSQL
高并发幂等计数器的设计与实现
高并发幂等计数器的设计与实现
401 0
高并发幂等计数器的设计与实现
一看就会R语言绘制限制性立方样条(Restricted cubic spline,RCS)
最近在研究怎么处理论文数据,各种分析软件都有使用,比如:SPSS、Origin、stata16、medcalc和R语言都有些研究,其中除R语言外都是收费的。不过经过一番功夫,我这边有SPSS、stata16、Origin和medcalc的破解版,有需要的可以关注我的公众号,私聊我来获取,我将给你一个百度网盘下载地址。
1656 0
|
2月前
|
存储 算法 关系型数据库
【Java架构师体系课 | MySQL篇】② 深入理解MySQL索引底层数据结构与算法
InnoDB索引为何采用B+树?本文由浅入深解析二叉树、红黑树、B树的缺陷,详解B+树的结构优势:非叶子节点不存数据、叶子节点有序且双向链接,支持高效范围查询与磁盘预读,三层即可存储两千多万数据,极大提升查询性能。
201 7
|
2月前
|
SQL 存储 缓存
【Java架构师体系课 | MySQL篇】① 全面理解MySQL架构设计
本文详解MySQL一条SQL查询与更新语句的执行流程,涵盖连接器、分析器、优化器、执行器及存储引擎层协作机制,并深入解析redo log与binlog日志如何通过两阶段提交保障数据一致性与恢复能力。
200 2
|
前端开发 Java
Java 技术篇 - 前端浏览器发送一次url请求后端ServerSocket接收到两次请求原因及解决方法,GET /favicon.ico HTTP/1.1问题处理
Java 技术篇 - 前端浏览器发送一次url请求后端ServerSocket接收到两次请求原因及解决方法,GET /favicon.ico HTTP/1.1问题处理
987 0
Java 技术篇 - 前端浏览器发送一次url请求后端ServerSocket接收到两次请求原因及解决方法,GET /favicon.ico HTTP/1.1问题处理
|
运维 Cloud Native Devops
一线实战:运维人少,我们从 0 到 1 实践 DevOps 和云原生
上海经证科技有限公司为有效推进软件项目管理和开发工作,选择了阿里云云效作为 DevOps 解决方案。通过云效,实现了从 0 开始,到现在近百个微服务、数百条流水线与应用交付的全面覆盖,有效支撑了敏捷开发流程。
19749 30
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
454 5
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的家政平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的家政平台附带文章源码部署视频讲解等
294 4

热门文章

最新文章