02-Java基础语法【数据类型转换、运算符、方法入门】
重点知识记录
01、数据类型转换
当数据类型不一样是,将会发生数据类型转换。
1)自动类型转换(隐式):
特点:代码不需要进行特殊处理,自动完成;
规则:数据范围从小到大;byte < short < int < long float < double boolean < char
2)强制类型转换(显式):
特点:代码需要进行特殊的格式处理,不能自动完成;
格式:范围小的类型 范围小的变量名 = (范围小的类型) 原本范围大的数据;
3)数据类型转换注意事项:
a:强制类型准换一般不推荐使用,因为有可能发生精度损失、数据溢出;
b:byte/short/char这三种类型都可以发生数学运算,例如加法“+”;
c:byte/short/char这三种类型在运算的时候,都会被首先提升成为int类型,然后在进行计算;
d:boolean类型不能发生数据类型转换。
02、数字个字符的对照关系表(编码表)
ASCII码表:American Standard Code for Information Interchange,美国信息交换标准代码;
Unicode码表:万国码,也是数据和符号的对照关系,开头0-127部分和ASCII码表完全一样,但是从128开始包含有更多的字符。
最主要的三个数字:48 - ‘0’; 65 - ‘A’; 97 - ‘a’
03、算术运算符
1)运算符:进行特定操作的符号,例如:+;
2)表达式:用运算符连起来的式子叫做表达式,例如:20 + 5,又例如:a + b
3)四则运算:加:+; 减:-; 乘:*; 除:/; 取模(取余数):%
4)操作过程:
首先计算得到表达式的记过,然后在打印输出这个结果;
对于一个整数的表达式来说,出发用的是整除,整数除以整数,结果仍然是整数。所以只看商,不看余数。
只有对于整数的除法来说,取模运算符才有余数的意义。
5)注意事项:一旦运算当中有不同类型的数据,那么结果将会是数据类型范围大的那种。
6)四则运算中加好“+”号有常见的三种用法:
a、对于数值来说,那就是加法;
b、对于字符char类型来说,在计算之前,char类型会被提升成为int类型,然后再进行计算;
char类型字符,和int类型数字之间的对照关系表:ASCII、Unicode
c、对于字符串String(注意:首字母大写,并不都是关键字)来说,加好代表字符串连接操作;
任何数据类型和字符换进行连接的时候,结果都会变成字符串。
7)自增运算符:++ ,让一个变量涨一个数字
自减运算符: -- ,让一个变量降一个数字
使用格式:写在变量名称之前,或者写在变量名称之后,例如:++num,或num++
使用方式:
a、单独使用:不和其他任何操作混合,自己独立成为一个步骤;
b、混合使用:和其他操作混合,例如:与赋值混合,或与打印操作混合等等。
使用区别:
a、在单独使用的时候,前++和后++没有任何的区别,也就是说++num和num++是完全一样的;
b、在混合使用的是会后,则有【重大区别】
i、如果是【前++】,那么变量【先+1】,然后拿着结果进行使用。 【先加后用】
ii、如果是【后++】,那么首先使用变量本身的数值,【然后再让变量+1】。 【先用后加】
注意事项:
只有变量才能使用自增、自减运算符。常量不可发生改变,所以不能使用。
04、赋值运算符分类
1)基本赋值运算符:就是一个等号“=”,代表将右侧的数据交给左侧的变量;
例如:int a = 30;
2)复合赋值运算符:
+= a += 3 相当于 a = a + 3
-= b -= 4 相当于 b = b - 4
*= c *= 5 相当于 c = c * 5
/= d /= 6 相当于 d = d / 6
%= e %= 7 相当于 e = e % 7
3)注意事项
a、只有变量才能使用赋值运算符,常量不能进行赋值;
b、复合赋值运算符其中隐含了一个强制类型转换。
05、比较运算符
大于: >
小于: <
大于等于:>=
小于等于:<=
相等: == 【两个等号连写才是相等,一个等号代表的是赋值】
不相等: !=
注意事项:
1)比较运算符的记过一定是一个boolean值,成立就是true,不成立就是false
2)如果进行多次判断,不能连着写。例如数学当中的写法,例如:1 < x < 3,程序中【不允许】这种写法。
06、逻辑运算符
与(并且) && 全都是true,才是true;否则就是false
或(或者) || 至少一个是true,就是true;全都是false,才是false
非(取反) ! 本来是true,则变成false;本来是false,则变成true
与“&&”、或“||”,这两个具有短路效果:如果根据左边已经可以判断得到最终结果,那么右边的代码则不再执行,从而提升一定的性能;
注意事项:
1)逻辑运算符只能用于boolean值;
2)与、或需要左右各自有一个boolean值,但是取反只要有唯一的一个boolean值即可;
3)与、或两种运算符,如果有多个条件,可以连续写。
两个条件:条件A && 条件B
多个条件:条件A && 条件B && 条件C
TIPS:
对于1 < x < 3的情况,应该拆分为两个部分,然后使用运算符连接起来:例如:int x =2; 1< x && x <3
07、三元运算符
1)一元运算符:只需要一个数据就可以进行操作的运算符。例如:取反!、自增++、自减--
2)二元运算符:需要两个数据才可以进行操作的运算符。例如:加法+、赋值=
3)三元运算符:需要三个数据才可以进行操作的运算符。
4)操作格式:
数据类型 变量名称 = 条件判断 ? 表达式A :表达式B;
5)操作流程:
首先判断条件是否成立:如果条件成立为true,则将表达式A的值赋值给左侧的变量;如果条件不成立为false,则将表达式B的值赋值给左侧的变量;二者选其一。
6)注意事项:
a、必须同时保证表达式A和表达式B都复合左侧数据类型的要求;
b、三元运算符的记过必须被使用。
08、方法
方法就是讲一个功能抽取出来,把代码单独定义在一个大括号里,形成一个单独的功能,当我们需要这个功能的时候,就可以去调用它,这样既实现了代码的复用性,也解决了代码冗余的现象。
方法格式:
修饰符 返回值类型 方法名 (参数列表){
代码...
return ;
}
方法名称命名:和变量一样,使用小驼峰;
方法体:也就是大括号当中可以包含任意条语句;
注意事项;
a、方法定义的先后顺序无所谓;
b、方法的定义不能产生嵌套包含关系;
c、方法定义好了之后,不会自动执行,如果要想执行该方法,则需要进行方法的【调用】。
调用方式(格式):方法名称();PS:一定要使用英文的括号和分号。
09、JDK9的新特性(JShell脚本工具)
JShell脚本工具是JDK9版本中新添加的特性;
什么时候用?
当我们编写的代码非常少的时候,然后我们有不愿意编写类,mian方法,也不愿意去编译和运行的时候可以使用。
如何使用:
打开jdk9安装目录的jshell.exe程序,在DOS命令行直接输入JShell命令。
10、编译器优化
1)对于byte/short/char三种类型来说,如果右侧赋值的数值没有超过范围,那么javac编译器将会自动隐含地为我们补上一个(byte)(short)(char)。
如果右侧没有超过左侧的范围,那么编译器会自动补上强转;
如果右侧超过左侧的范围,那么则会直接编译器报错。
2)在给变量进行赋值的时候,如果右侧的表达式当中全都是常量,没有任何变量,那么编译器javac将会直接将若干个常量表达式计算得到结果并赋值;
short result = 5 + 8; // 等号右边全都是常量,没有任何变量参与运算
编译之后,得到的.class字节码文件中相当于【直接就是】:short result = 13;
右侧的常量结果数值,没有超过左侧范围,所以正确。
这称为“编译器的常量优化”。
注意:
一旦表达式中有变量参与,那么就不能进行这种优化了,就会失效。
02-Java基础语法【数据类型转换、运算符、方法入门】的更多相关文章
- 【JAVA基础】02 Java基础语法
一.内容 注释 关键字 标识符 常量.进制和进制转换 变量 数据类型和类型转换 运算符 语句 二.注释 注释概述 用于解释说明程序的文字 Java中注释分类格式 单行注释 格式://注释文字 多行注释 ...
- java基础之数据类型转换
在写java程序时,经常会遇到需要数据类型转换,下面我们来介绍一些一些基本数据类型之间的转换. 1.int,folat,double,boolean,long 转换成字符串,其实很简单只需使用一个函数 ...
- 02 Java 基础语法
在开始 Java 基本语法之前,先说明 Java 程序的基本规范: 大小写敏感,例如 Person 和 person 是不同的 类名首字母大写,如果类名由多个单词组成,每个单词首字母都大写,例如 He ...
- Java基础语法:类型转换
由于Java是强类型语言,所以有时候在进行运算时,需要用到类型转换. 整型.常量.字符类型数据可以混合运算. 运算中,不同类型的数据先转化为同一类型,然后再进行运算. 类型转换等级有低级到高级的划分, ...
- Java基础语法—数据输入
我们可以通过 Scanner 类来获取用户的输入.使用步骤如下: 1.导包.Scanner 类在java.util包下,所以需要将该类导入.导包的语句需要定义在类的上面. import java.ut ...
- Java基础语法<一> 数据类型&运算符
1 数据类型 1.1 整型 类型 存储需求 取值范围 int 4字节 -21 4748 3648 – 21 4748 3647 232 short 2字节 -32768-32767 216 lon ...
- 第5天 Java基础语法
第5天 Java基础语法 今日内容介绍 方法 方法 方法概述 在我们的日常生活中,方法可以理解为要做某件事情,而采取的解决办法. 如:小明同学在路边准备坐车来学校学习.这就面临着一件事情(坐车到学校这 ...
- JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)
Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...
- 019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例
019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例 本文知识点:Java中的数据类型转换案例 学习视频有误,导致没法写文,文章内容 ...
- 018 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 12 数据类型转换的基本概念
018 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 12 数据类型转换的基本概念 本文知识点:Java中的数据类型转换 类型转换 类型转换分类 2类,分别是: ...
随机推荐
- 无人机通信协议MAVLink简介
MAVLink MAVLink(Micro Air Vehicle Link,微型空中飞行器链路通讯协议)是无人飞行器与地面站(Ground Control Station ,GCS)之间通讯,以及无 ...
- Unity3D制作3D虚拟漫游场景(一)
开始前先说一些题外话,本来这个工程是已经完成了超过一半了,然而由于手残重装了系统不小心删除了,现在只好再做一遍了.顺便写一下博供今后写代码参考. 这是一款使用unity3D开发的虚拟城市漫游游戏,实际 ...
- NODEJS 使用 sqlite3 本地文件数据库
npm install sqlite3 var sqlite3 = require('sqlite3').verbose();var db = new sqlite3.Database('WebFil ...
- C++->10.3.2-3,使用文件流类录入数据,并统计行数
题目:建立一个文本文件,从键盘录入一篇短文存放在该文件中短文由若干行构成,每行不超过80个字符,并统计行数. /* #include<iostream.h>#include<stdl ...
- Math, Date,JSON对象
Math 对象 Math是 JavaScript 的原生对象,提供各种数学功能.该对象不是构造函数,不能生成实例,所有的属性和方法都必须在Math对象上调用. 静态属性 Math对象的静态属性,提供以 ...
- 剑指offer-面试题18-删除链表中重复的节点-链表
/* 题目: 删除链表中重复的节点 */ /* 思路: 1.声明一个头节点head,即使首元节点被删除,也可返回head->next 2.声明两个指针, 一个指针qNode指向确定不会删除的链表 ...
- P3292 [SCOI2016]幸运数字 [线性基+倍增]
线性基+倍增 // by Isaunoya #include <bits/stdc++.h> using namespace std; #define rep(i, x, y) for ( ...
- <转载> 撤销 git reset 操作
https://blog.csdn.net/mhlghy/article/details/84786497
- nodepad++ | 变成 _
点击右下角切换
- Python基础概念
一.Python中执行代码的方式 直接在编译器中交互执行: 在编译器中通过Python和文件的路径执行: 在linux系统中可以./test.py(需要代码第一行增加# !/usr/bin/env p ...