重点知识记录

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基础语法【数据类型转换、运算符、方法入门】的更多相关文章

  1. 【JAVA基础】02 Java基础语法

    一.内容 注释 关键字 标识符 常量.进制和进制转换 变量 数据类型和类型转换 运算符 语句 二.注释 注释概述 用于解释说明程序的文字 Java中注释分类格式 单行注释 格式://注释文字 多行注释 ...

  2. java基础之数据类型转换

    在写java程序时,经常会遇到需要数据类型转换,下面我们来介绍一些一些基本数据类型之间的转换. 1.int,folat,double,boolean,long 转换成字符串,其实很简单只需使用一个函数 ...

  3. 02 Java 基础语法

    在开始 Java 基本语法之前,先说明 Java 程序的基本规范: 大小写敏感,例如 Person 和 person 是不同的 类名首字母大写,如果类名由多个单词组成,每个单词首字母都大写,例如 He ...

  4. Java基础语法:类型转换

    由于Java是强类型语言,所以有时候在进行运算时,需要用到类型转换. 整型.常量.字符类型数据可以混合运算. 运算中,不同类型的数据先转化为同一类型,然后再进行运算. 类型转换等级有低级到高级的划分, ...

  5. Java基础语法—数据输入

    我们可以通过 Scanner 类来获取用户的输入.使用步骤如下: 1.导包.Scanner 类在java.util包下,所以需要将该类导入.导包的语句需要定义在类的上面. import java.ut ...

  6. Java基础语法<一> 数据类型&运算符

    1 数据类型   1.1 整型 类型 存储需求 取值范围 int 4字节 -21 4748 3648 – 21 4748 3647 232 short 2字节 -32768-32767 216 lon ...

  7. 第5天 Java基础语法

    第5天 Java基础语法 今日内容介绍 方法 方法 方法概述 在我们的日常生活中,方法可以理解为要做某件事情,而采取的解决办法. 如:小明同学在路边准备坐车来学校学习.这就面临着一件事情(坐车到学校这 ...

  8. JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)

    Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...

  9. 019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例

    019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例 本文知识点:Java中的数据类型转换案例 学习视频有误,导致没法写文,文章内容 ...

  10. 018 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 12 数据类型转换的基本概念

    018 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 12 数据类型转换的基本概念 本文知识点:Java中的数据类型转换 类型转换 类型转换分类 2类,分别是: ...

随机推荐

  1. 如何在CentOS上安装Tensorflow的gpu版本?

    系统配置 系统版本: Centos7.6 语言: Python3.5(anaconda3 4.2) 框架: Tensorflow 安装依赖 sudo yum install openjdk-8-jdk ...

  2. D. Domino for Young

    基本思想是利用涂色的方法,用黑白两种颜色把方格全部涂色,相邻方格不同色. 方法1:基于二分图匹配的思想 一开始也想过二分图匹配,但数据量太大,就放弃了这种想法.其实根据增广路的定义.如果白色的方格的数 ...

  3. ARM微处理器中支持字节、半字、字三种数据类型,地址的低两位为0是啥意思?

    问题: ARM微处理器中支持字节.半字.字三种数据类型,其中,字需要4字节对齐(地址的低两位为0).半字需要2字节对齐(地址的最低位为0).我想问的是括号中的内容是什么意思呢?请牛人帮忙解释一下!谢谢 ...

  4. MySQL 8 重置 root 密码

    如果 root 密码丢失,如何重置 root 密码? 重置 root 密码:Unix 和 类 Unix 系统: 1.登录 Unix 系统用户(运行MySQL服务器的用户) 2.停止MySQL服务器   ...

  5. Python3标准库:array数组

    1. array数组 array模块定义了一个序列数据结构,看起来与list很相似,只不过所有成员都必须是相同的基本类型.支持的类型包括所有数值类型或其他固定大小的基本类型(如字节). 代码 类型 最 ...

  6. 题解【AcWing272】最长公共上升子序列

    题面 一道线性 DP 好题. 设 \(dp_{i,j}\) 表示在所有 \(a_{1\dots i}\),\(b_{1\dots j}\) 的子序列中,以 \(b_j\) 结尾的最长公共上升子序列的最 ...

  7. 本机添加多IP绑定网站

    查询IP 显示为1个IP 点击更改适配器 点击高级 进行添加IP 点击添加 ipconfig 查看效果 注~!:在IIS中可以在这里添加多IP然后绑定

  8. Real-time Compressive Tracking

    这是RTC算法的文献blog Real-time Compressive Tracking Kaihua Zhang1, Lei Zhang1, Ming-Hsuan Yang2 1Dept. of ...

  9. C++——多态性

    多态是指发出同样的消息被不同类型的对象接收时有可能导致完全不同的行为: 多态的实现:函数重载:运算符重载:虚函数 为什么需要重载运算符? 在C++没有复数运算,进行复数运算之前我们要事先写一个复数类, ...

  10. 利用redis,为Django项目储存session

    1.准备工作 pip install redis pip install django-redis-sessions==0.5.6 (推荐使用此版本) 创建一个django项目,新建一个booktes ...