day02_数据类型转换、运算符、方法入门

数据类型

基本数据类型

四类八种

  • 整数型 (取值范围)

    • byte(-128~127) short(-32768~32767) int(一般默认)(-21亿~21亿) long( )
  • 浮点型
    • float double(一般默认)
  • 布尔型
    • char
  • 字符型
    • boolean

1. 数据类型转换

  • long(大)--> int(小),不是从小到大有可能发生数据丢失
  • 当数据类型不一样时,将会发生数据类型转换。

1.1 自动转换(隐式)

  • 特点:代码不需要进行特殊处理,自动完成。
  • 规则:数据范围从小到大。

1.2 强制类型转换

  • 特点:代码需要进行特殊处理,不能自动完成。
  • 格式:范围小的类型 范围小的变量名 = (分为小的类型 ) 原本范围大的数据;

1.3 注意事项

  1. 强制类型转换一般不推荐使用,因为可能发生精度损失,数据溢出.
  2. byte/short/char 这三种类型都可以发生数学运算,例如加法"+".
  3. byte/short/char这三种类型在发生转换时,都会首先被提升为int类型,然后再继算.
  4. Boolean类型不能发生数据类型转换.

1.4 ASCII编码表

数字和字符的对照关系表(编码表):

  1. ASCII码表:American Standard Code for Information Interchange,美国信息交换标准代码.
  2. Unicode码表:万国码.也是数字和符号的对照关系,开头是0-127部分完全和ASCII一样,但是从28开始包含更多字符.
  3. 常用:48- '0' ,65 -'A' 97- 'a'.

1.5 算术运算符

  1. 运算符:进行特定操作的符号,例如 :" + "

  2. 表达式:用运算符号连起来的式子叫做表达式.例如 20 + 3. a + b

  3. 四则运算:加 + 减 - 乘 * 除 / . 取模(取余数): %

    • 首先计算得到表达式的结果,然后打印结果
    • 被除数 / 除数 = 商........余数

注意事项:

  1. 对于一个表达式来说,除法用的是整数,整数除以整数,结果仍是整数.
  2. 取模运算才有余数的意义
  3. 一旦运算当中有不同数据类型的数据,那么结果将会是数据范围大的那种.

1.6 加号的多种用法

常见的三种用法

  1. 对于数值来说就是加法。

  2. 对于字符char类型来说,在计算之前,char类型会被提升为int,然后在计算。

    char类型字符,和int类型数字,之间的对照关系表:ASCII、Unicode

  3. 对于字符串Strong(首字母大写,并不是关键字)来说。加号代表字符串的连接操作。

    任何数据类型和字符串进行连接的时候,都会变成字符串。

1.7 自增自减运算符

自增运算符:++

自减运算符:--

基本含义:让一个变量涨数字1,或者让一个数字减数字1

使用格式:写在变量名之前,或者写在变量名之后例如 num++ num--

使用方法:

  1. 单独使用:不与其他任何人操作混合,自己独立成为一个步骤。
  2. 混合使用:和其他操作混合,例如与赋值混合。或者与打印操作混合等等。

使用区别:

  1. 在单独使用时没有任何区别。前++和后++一样
  2. 在混合使用时,有【重大区别】
    • 如果是【前++】,那么变量【立马+1】,然后拿着结果进行使用。【先加后用】
    • 如果是【后++】,那么首先使用变量本来的数值,【然后再让变量家1】。【先用后加】

注意事项:

​ 至有变量才能使用自增、自减运算符。常量不可以发生改变,所以不能使用。

1.8 赋值运算符

赋值运算符分为:

  1. 基本赋值运算符:就是一个符号“=”,代表将右侧的数据交给左边的变量。

    int a = 30;

  2. 复合赋值运算符

    1. += a += 3; 相当于 a = a + 3;
    2. -= b -=4; 相当于 b= b-4;
    3. = c =5; 相当于 c = c *5;
    4. /= d /=6; 相当于 d= d /6;
    5. %= e %=7; 相当于 e= e%7;

注意事项:

  1. 只有变量才能使用赋值运算,常量不能进行赋值。
  2. 复合赋值运算符其中隐含了一个强制类型转换。

1.9比较运算符

  • 大于: >
  • 小于: <
  • 大于等于: >=
  • 小于等于: <=
  • 相等: == 【两个等号连写才是相等,一个等号代表赋值 】
  • 不相等: !=

注意事项:

  1. 比较运算符的结果一定是一个boolean值,成立时true,不成立是false。

  2. 如果进行多次判断,不能连着写。

    数学当中的写法;例如:1<x <3

    在程序中【不允许】这种写法。

2.0 逻辑运算符

  • 与(并且) && 全部为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

2.1 三元运算符

  • 一元运算符:只需要一个数据就可以操作的运算符。例如:取反!、自增++、自减--
  • 二元运算符:需要两个数据才可以操作的运算符。例如:加法+、减法-、赋值=
  • 三元运算符:需要三个数据才可以操作的运算符

格式:

数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B;

流程:

首先判断条件是否成立:

​ 如果成立则为true,那么将表达式A的值赋值给左侧的变量;

​ 如果不成立则为false,那么将表达式B的值赋给左侧的变量;

二者选其一。

注意事项:

  1. 必须同时保证表达式A和表达式B都符合左侧数据类型的要求。
  2. 二元运算符的结果必需被使用。

2.3方法入门

定义一个方法的格式:

public static void 方法名称(){

​ 方法体

}

方法名称的命名规律和变量一样,使用小驼峰。

方法体:也就是大括号中可以包含任意条语句。

注意事项:

  1. 方法定义的先后顺序无所谓。
  2. 方法的定义不能产生嵌套包含的关系。
  3. 方法定义好了,以后不会执行的。如果想要执行,一定要进行方法的【调用】。

如何调用方法,格式:

方法名称();

2.6 编辑器常量优化

在给变量进行赋值的时候,如果右侧的表达式当中全部是变量,没有任何常量,

  • 那么编译器Javac将会直接将若干个常量表达式计算得到结果。
  • short result = 5 + 8;//等号右边全部都是常量,没有任何变量参
  • 与运算,编译之后,得到的。class字节码相当于【直接就是】
  • short result = 13;
  • 右侧的常量结果数值,没有超过左侧范围,所以正确
  • 这称为:“编译器的常量优化”。
  • 但是注意:一旦表达式中有变量参与,就不能进行这种优化。

day02_数据类型转换、运算符、方法入门的更多相关文章

  1. QVariant类及QVariant与自定义数据类型转换的方法

    这个类型相当于是Java里面的Object,它把绝大多数Qt提供的数据类型都封装起来,起到一个数据类型“擦除”的作用.比如我们的 table单元格可以是string,也可以是int,也可以是一个颜色值 ...

  2. JavaScript---js语法,数据类型及方法, 数组及方法,JSON对象及方法,日期Date及方法,正则及方法,数据类型转换,运算符, 控制流程(三元运算),函数(匿名函数,自调用函数)

    day46 一丶javascript介绍 JavaScript的基础分为三个       1.ECMAScript:JavaScript的语法标准.包括变量,表达式,运算符,函数,if语句,for语句 ...

  3. 数据类型转换&运算符

    基本数据类型注意事项 整型类型:long>int>short>byte java默认类型为int型 long a = 123 表示将int类型的数值赋给更大范围的long类型,当数据 ...

  4. QVariant与自定义数据类型转换的方法

      在使用VC.Delphi编写用户界面程序的时候,经常会把对象与控件的data域进行绑定,便于程序运行中读写提高效率.然而在Qt编程中怎么实现这个功能呢?比如将一个用户自定义的结构体与QComboB ...

  5. php踩过的那些坑(3) 数据类型转换

    一.前方有坑 php属于弱类型语言,不会强迫工程师在使用变量之前先声明变量类型,开发时爽了,但是也带来不少的坑.下面就举一个坑的例子: 例1: $str = ‘haodaquan'; echo ($s ...

  6. ECMAScript1.1 js书写位置 | 声明变量 | 基本数据类型 | 数据类型转换 | 操作符 | 布尔类型的隐式转换

    js书写位置 由于在写css样式时使用的时双引号,所以我们在写js代码时建议使用单引号(‘’)! 行内式 <input type="button" value="点 ...

  7. Android深入理解JNI(二)类型转换、方法签名和JNIEnv

    相关文章 Android深入理解JNI系列 前言 上一篇文章介绍了JNI的基本原理和注册,这一篇接着带领大家来学习JNI的数据类型转换.方法签名和JNIEnv. 1.数据类型的转换 首先给出上一篇文章 ...

  8. C#常用处理数据类型转换、数据源转换、数制转换、编码转换相关的扩展

    public static class ConvertExtensions { #region 数据类型转换扩展方法 /// <summary> /// object 转换成string ...

  9. 02-Java基础语法【数据类型转换、运算符、方法入门】

    重点知识记录 01.数据类型转换 当数据类型不一样是,将会发生数据类型转换. 1)自动类型转换(隐式): 特点:代码不需要进行特殊处理,自动完成: 规则:数据范围从小到大:byte < shor ...

随机推荐

  1. 一款类似loadRunner的优秀国产压力测试工具——kylinTOP测试与监控平台

    市面上流行的压力/负载/性能测试工具多是来自国外,近年来国内的性能测试工具也如雨后春笋般崛起,但大部分产品是基于Jmeter开源内核包装起来的性能测试工具,其中也不乏佼佼者,如:kylinTOP测试与 ...

  2. Appium+Pytest实现app并发测试

    前言 这个功能已经写完很长时间了,一直没有发出来,今天先把代码发出来吧,有一些代码是参考网上写的,具体的代码说明今天暂时先不发了,代码解释的太详细还得我花点时间^_^, 毕竟想让每个人都能看明白也不容 ...

  3. 用Robot Framework+python来测试基于socket通讯的C/S系统(网络游戏)

    项目终于换了方案,改用socket来实现而不是之前的http了,所以测试工具就不能用以前的了,因为测试人手少,逼不得已的必须要挖掘更多的自动化方案来弥补.于是先研究了下python的socket解决方 ...

  4. [Linux实践] macOS平台Homebrew更新brew update卡死,完美解决

    [Linux实践] macOS 平台 Homebrew 更新 brew update 卡死,完美解决 版本2020.01.05 摘要: 使用brew install [软件包]安装软件包时,卡在Upd ...

  5. 23.python虚拟环境配置

    1.安装 virtualenvwrapper-win pip3 install virtualenvwrapper-win 2.然后使用workon查看是否安装成功(workon是简化操作的神级命令之 ...

  6. Dockerfile + Nginx.conf文件记录(用于前端项目部署)

    Dockerfile + Nginx.conf文件记录(用于前端项目部署) 本教程依据个人理解并经过实际验证为正确,特此记录下来,权当笔记. 注:基于linux操作系统(敏感信息都进行了处理),默认服 ...

  7. 使用内存映射文件MMF实现大数据量导出时的内存优化

    前言 导出功能几乎是所有应用系统必不可少功能,今天我们来谈一谈,如何使用内存映射文件MMF进行内存优化,本文重点介绍使用方法,相关原理可以参考文末的连接 实现 我们以单次导出一个excel举例(csv ...

  8. python列表的 + 、* 、in 、 not in 、 len() 、 max() 、 min()

    + 列表拼接 first_list = [1,2,3] + ['a',5] # + 将列表拼接 print(first_list) # [1, 2, 3, 'a', 5] *  列表与数字n相乘 : ...

  9. FNScanner二维码接口openView自定义扫码Demo

    本文出自APICloud官方论坛 FNScanner 模块是一个二维码/条形码扫描器,是 scanner 模块的优化升级版.在 iOS 平台上本模块底层集成了 Zbar 和系统自带的条形码/二维码分析 ...

  10. gradle 不用打开项目直接编译

    gradlew :api-client:install 编辑完后点击