day03 课堂笔记

1、数据类型

2、总结第二章到目前为止所学内容:
* 标识符
* 关键字
* 字面值
* 变量

成员变量如果没有赋值,系统会自动赋值,而局部变量不手动赋值,则会编译不通过。

* 数据类型

字符编码:在计算机中起到数据转换作用

‘a’----->97

'A'----->65

'0'----->45

记住以上三个

【简体中文编码方式】

GB2312 < GBK < GB18030包含字符最多

Java语言采用最多的编码方式为Unicode

所以标识符可以用中文表示

【八种基本数据类型的取值范围】

类型        取值范围      默认值

byte        [-128,127]      0

short       [-35768,32767]     0

int                     0

long                    0

float                  0.0

double                 0.0

boolean        [true,false]     false(true是1,false是0)

char        [0,65535]      \u0000

short和char能表示的种类数目是相同的,只不过char可以表示更大的正整数。

八种数据类型的默认值都是向0看齐

char类型占2个字节,而一个中文字符也占2个字节,故可以有 char c='字';

【转义字符】

\n  换行符

\t  制表符Tab

\\  普通的斜杠

\'  普通的单引号

\"  普通的双引号

转义字符出现在特殊字符之前,会将特殊字符转换为普通字符。

System.out.println()表示输出后换行,【注意不是换行后输出】

System.out.print()表示输出后不换行

public class A{

  public void main(String[] args){

  char c='\\';  //输出 \ 字符

  System.out.println("c");

  

  char c='\'';  //输出 ' 字符

  System.out.println("c");

}

}

JDK中自带的native2aascii.exe命令,可以将文字转换成Unicode编码形式

使用方法:

直接在DOS窗口输入native2ascii回车运行,输入汉字回车转换出Unicode码

例如,真不错---->\u771f   \u4e0d  \u9519

故,char型的变量默认值为\u0000,注意\u

【整数型字面值默认是int型的十进制数】

若以0开头,则是八进制

若以0x开头,则是十六进制

注意

long a=123;  ///仍然是将占4个字节的int型123转换为占8字节的long型123

long a=123456789 ;  //123456789超出int型的范围,编译出错,【面试题问你能不能编译通过】

long a=123456789L ;  //加个大写L,表示为long型数值,编译成功

【强制类型转换】

long a=100;

int b=a;  //大容量转小容量,编译不通过

//下面进行强制类型转换,编译通过,但可能损失精度

//尤其正负,在砍掉左边四个字节后,余下的“最高位”可能为1,存在正数变负数的可能

int b=(int)a;

【特例】下面这个可以编译通过

byte a=123; //表面上是大容量赋给小容量,但可以编译通过

//java规定对byte型变量赋值,赋值的int型量没超过byte的取值范围,则可以编译通过,

这对于char,short型的变量同样适用。

【JavaSE的类库的源码所在位置】

SE类库字节码:D:\software\Java\src.zip

SE类库源码:D:\software\Java\jre\lib\rt.jar

{string[] args}中的String使用的就是String.class字节码文件、

【浮点型字面值默认为double型】

double a=3.0;

如果想把浮点型字面值当做float型,则需在后面加F/f;

float a=5.1;  //编译出错

解决方法一:强制类型转换

float a=(float)5.1;

解决方法二:没有强制转换

float a=5.1f;

double和float型在计算机中存储的都是近似值

因为有些无限不循环数无限长,但存储空间有限

【布尔数据类型】

只有true和false两种类型,占一个字节

经常使用在逻辑判断和条件控制语句中

boolean a=1;  //编译错误

boolean a=true;  //编译成功,布尔型变量只能被赋值true或false,而不能是0,1

【基本数据类型之间的相互转换】【面试】

1、除布尔类型外均可互相转换

2、小容量向大容量转换,称为自动类型转换,容量从小到大排序:

byte < short < int < long < float < double < char

任何浮点型数据不管多少字节,都比整数型容量大

char和short可表示的种类数量相同,但是char可以取更大的正整数

3、大容量转化为小容量需要进行强制类型转换

4、当字面值没有超出byte、short、char的取值范围,可以直接赋值

5、short、byte、char混合运算时,会自动转化为int型

6、多种数据类型混合运算是,先转换成容量最大的那种类型再做运算

3、运算符

【算术运算符】

+

-

*

/

%(求余数,取模)

++(自增一)

--(自减一)

运算符有优先级,可以通过加括号,来提高,不需专门记忆

【关系运算符】

>

<

>=

<=

==

!=

上述关系运算符的运算结果一定是布尔类型true/false

【注意“=”是赋值运算符】

【逻辑运算符】

逻辑运算符要求两边的算子都是布尔类型

&       逻辑与

|      逻辑或

!      逻辑非(单目运算符)

^      逻辑异或

&&     短路与(与上面的逻辑与运算结果相同,但短路与存在短路现象)

||      短路或(与上面的逻辑或运算结果相同,但短路或存在短路现象)

【短路现象】当执行逻辑运算(5<2 & 5>2)时,先运算左边结果是false,在运算右边结果是true,整体结果为false

而(5<2 && 5>2)当左边运算结果为false时,整个运算结果已确定为false,右边不再计算,(较聪明)执行效率高

故短路与更常用,但特殊情况会使用逻辑与,比如,业务要求必须执行的时候

【总结】短路或 || :当左边结果为true时,右边不再计算

    短路与&&:当左边结果为false时,右边不再计算

* 赋值类运算符
* 字符串连接运算符
* 三元运算符

-----部分摘自B站动力节点教育集团

Java学习day03的更多相关文章

  1. Java 学习 day03

    01-语句(while) 02-语句(do while) 03-语句(for) 04-语句(for和while的区别) 05-语句(循环语句的其他特点) 06-语句(for语句练习-累加&计数 ...

  2. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  3. 0035 Java学习笔记-注解

    什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...

  4. 分享篇——我的Java学习路线

    虽然之前我是开发出身,但是我学习的语言是Objective-c,这个语言使用起来范围比较窄,对于自动化学习来说也是无用武之地,所以我自己学习了Java,对于一个有开发经验的人来说学习一门新语言相对来说 ...

  5. Java学习笔记(04)

    Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...

  6. Java学习心得之 HttpClient的GET和POST请求

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 HttpClient的GET和POST请求 1. 前言2. GET请求3 ...

  7. 0032 Java学习笔记-类加载机制-初步

    JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...

  8. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

  9. 0028 Java学习笔记-面向对象-Lambda表达式

    匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...

随机推荐

  1. 8点了解Java服务端单元测试

    一. 前言 单元测试并不只是为了验证你当前所写的代码是否存在问题,更为重要的是它可以很大程度的保障日后因业务变更.修复Bug或重构等引起的代码变更而导致(或新增)的风险. 同时将单元测试提前到编写正式 ...

  2. PHP - 读取EXCEL内容 存入数据库

    <?php //设置请求头 header("Content-Type:text/html;charset=utf8"); header("Access-Contro ...

  3. 我用 Java 8 写了一段逻辑,同事直呼看不懂,你试试看。。

    业务背景 首先,业务需求是这样的,从第三方电商平台拉取所有订单,然后保存到公司自己的数据库,需要判断是否有物流信息,如果有物流信息,还需要再进行上传. 而第三方接口返回的数据是 JSON 格式的,其中 ...

  4. 【Android】Android开发实现带有反弹效果,仿IOS反弹scrollview详解教程

    作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://weibo.com/mcxiaobing 首先给大家看一下我们今天这个最终实现 ...

  5. oeasy教您玩转linux010203显示logo

    我们来回顾一下 上一部分我们都讲了什么?

  6. Kernel_task占CPU问题

    彻底解决高版本 mac Kernel_task占CPU问题 https://blog.csdn.net/liumx2007/article/details/77164795

  7. Java 根据两个经纬度,得到两点距离

    private static final double EARTH_RADIUS = 6371000;//赤道半径(单位m)private static final double INTEGR_NUM ...

  8. 关于HTML基本标签,了解一下!

    目录 1 前言 2 正文 2.1 HTML文档结构 2.1.1 html标签 2.1.2 head标签 2.1.3 title标签 2.1.4 body标签 2.2 HTML常用标签 2.2.1 换行 ...

  9. Kafka入门(4):深入消费者

    摘要 在这一篇文章中,我将向你介绍消费者的一些参数. 这些参数影响了每次poll()请求的数据量,以及等待时间. 在这之后,我将向你介绍Kafka用来保证消费者扩展性以及可用性的设计--消费者组. 在 ...

  10. Tooltip鼠标hover放上时文字提示

    使用content属性来决定hover时的提示信息. 由placement属性决定展示效果: placement属性值为:                 方向-对齐位置: 四个方向:top.left ...