《Java编程思想》笔记 第三章 操作符

1.操作符种类:

运算顺序1-7

1.1 一元操作符(单目操作符)  - 负号, + 正号,--递减,++递增

1.2 算术操作符 + - *  /  %

1.3 移位操作符  <<左移(低位补0),>>右移(负数高位1,正数高位补0),

>>>无符号右移 (无论正负高位补0)(对二进制)

(可与 = 结合使用 <<=     >>=   >>>=  类似 i += 1) 移位操作符详解

1.4 关系操作符 >  <  >=  <=  ==  !=   (生成boolean值)

1.5 逻辑操作符  &&  ||  ! (生成boolean值)

1.6 按位操作符 &与  | 或  ^ 异或  ~ 非(一元) (对二进制)

1.7 三元操作符

boolean-exp? value0 : value1 //

2.前缀式和后缀式

2.1 前缀式 -- ++  如 --i; ++i; 先对i执行-1,+1 ,再赋值给i然后执行后面的运算;

2.2 后缀式 -- ++ 如 i--; i++; 运算(i--)结束后立刻再对i进行-1 +1;

2.3 后缀式有一个陷阱就是 i = i++ , 这代码有坑, i 不会自增,

int s = 1;
int i =    s++ * 3;
System.out.println(s);//2
System.out.println(i);//3
s = 1;
i = ++s * 3;
System.out.println(s);//2
System.out.println(i);//6
s = 1;
i = s++ + (s * 3);
System.out.println(s);//2
System.out.println(i);//7

2.4 因后缀式在表达式中位置不同而造成计算结果的不同

int g = 5;               //表达式g + (g++ + g) 在内存中从左往右加载,计算时按优先级计算
int i = g + (g++ + g);  //第一个g=5, g++为5 最后一个g为6, 向内存中加载数据时第一个g是5,加载运算完g++后,之后的g就是6
System.out.println(i);//16
g = 5;
i = g++ + (g + g);//g++为5 后两个g为6
System.out.println(i);//17

3.别名现象: 不同引用指向同一个对象

4.随机数生成

Random rand = new Random() ;
        int k = rand.nextInt(100);
        int j = rand.nextFloat(); //0.0~1.0间 位数不一定

4.1 创建Random对象时没有参数(种子)传入,会以当前时间作为随机数生成器的种子传入

4.2 对于相同的种子会长生相同的随机数序列,当前时间不停在变随机数序列也不同

4.3 生成不同类型随机数调用对应方法即可

4.4 nextInt()方法的参数决定了随机数的上限,同时也决定了下限0,做除数时要+1

5. 短路:

  • 使用逻辑操作符时会出现不再计算表达式余下部分例如:test1() && test2() && test3();
  • 如果首先计算出test1()为false,那么false && test2 肯定为false,test2()就不会执行,【false && test2】为false test3()也不会执行,如果&&成了|| 那么就要执行test3()了。

6.直接常量规范

  • float  或 Float 赋初始值时使用L 如 float  f =  2L;  double加d或者D,16进制数前缀0X, 8进制前缀o

7.基本数据间的类型转换详情

7.1 byte,short,char 运算时会将结果提升为int

7.2 类型自动提升 小范围类型 + 大范围类型 = 大范围类型   (byte,short,char)  int  long  float  double    依次增大

7.3 char c = ‘a‘ 转整型会转为对应ASCII码值,char c = 98 转String会转为对应字符

7.4 float, double转为整型直接结尾,不会四舍五入,四舍五入使用java.lang.Math中的round()方法。

8.数据类型

原文地址:https://www.cnblogs.com/mibloom/p/9040345.html

时间: 2024-10-24 10:36:45

《Java编程思想》笔记 第三章 操作符的相关文章

java 编程思想笔记(三)——类的复用

一:复用功能介绍 复用代码,除了对代码复制并加以改变是不够的,除此之外,还能够使用类而不破坏现有程序代码. java 中代码复用可以分为以下三类:组合,继承,代理. 二:组合 新的类中使用现有类的对象,新的类由现有类的对象组成. 三:继承 通过extends 语法来实现声明. 四:代理 java 对代理没有提供直接支持,但通过组合和继承完成了间接实现,代理是组合和继承的中庸之道.代理=继承+组合 具体理解可以参考相关代码! 五:基类方法被子类重载 子类重载父类的方法,不会屏蔽其在基类中的任何版本

java编程思想笔记(第一章)

Alan Kay 第一个定义了面向对象的语言 1.万物皆对象 2.程序是对象的集合,他们彼此通过发送消息来调用对方. 3.每个对象都拥有由其他对象所构成的存储 4.每个对象都拥有其类型(TYpe) 5.某一特定类型的所有对象都可以接收同样的消息. Booch提出一种更简洁的描述: 对象拥有状态(state) 行为(behavior) 和标识(identity) 每个对象都有一个接口 每个对象都属于定义了特性和行为的某个类(特性可以理解为属性的状态,行为可以理解为method) 在面向对象的程序设

Java编程思想笔记(第二章)

第二章  一切都是对象 尽管Java是基于C++的,但相比之下,Java是一种更纯粹的面向对象程序设计语言. c++和Java都是杂合型语言(hybird language) 用引用(reference)操作对象 类似遥控器(引用)来操作电视(对象) 在Java中你可以创建一个引用,但是没有与任何对象关联,比如: String s; 这个时候如果用则会报错.安全的做法是: 创建一个引用的同时并进行初始化 String s="1111"; 必须由你创建所有对象 New关键字的意思是给我一

java编程思想总结(三)

java编程思想总结(三) java编程思想总结是一个持续更新的系列,是本人对自己多年工作中使用到java的一个经验性总结,也是温故而知新吧,因为很多基础的东西过了这么多年,平时工作中用不到也会遗忘掉,所以看看书,上上网,查查资料,也算是记录下自己的笔记吧,过一段时间之后再来看看也是蛮不错的,也希望能帮助到正在学习的人们,本系列将要总结一下几点: 面向对象的编程思想 java的基本语法 一些有趣的框架解析 实战项目的整体思路 代码的优化以及性能调优的几种方案 整体项目的规划和视角 其它遗漏的东西

《Java编程思想》第十三章 字符串

<Java编程思想>读书笔记 1.String作为方法的参数时,会复制一份引用,而该引用所指的对象其实一直待在单一的物理位置,从未动过. 2.显式地创建StringBuilder允许预先为他指定大小.如果知道字符串多长,可以预先指定StringBuilder的大小避免多次重新分配的冲突. 1 /** 2 * @author zlz099: 3 * @version 创建时间:2017年9月1日 下午4:03:59 4 */ 5 public class UsingStringBuilder {

Java编程思想 4th 第2章 一切都是对象

Java是基于C++的,但Java是一种更纯粹的面向对象程序设计语言,和C++不同的是,Java只支持面向对象编程,因此Java的编程风格也是纯OOP风格的,即一切都是类,所有事情在类对象中完成. 在Java中,使用引用来操纵对象,在Java编程思想的第四版中,使用的术语是"引用(reference)",之前有读过Java编程思想第三版,在第三版中,使用的术语是"句柄(handle)",事实上,我觉得第三版的术语"句柄"更加形象传神,就像你用一个

《Java编程思想》第一二章

前段时间一直通过网络教程学习Java基础,把面向对象部分学完之后本来打算继续深入学习,但是感觉自己操之过急了,基础根本不够扎实,所以入手了一本<Java编程思想>,希望先把基础打好,再深入学习. 不得不说这本书真的不是浪得虚名,对于我这样的新手看完一二章之后也觉得这本书值得买了.跟网上教程不同,这本书一开始便直接全面深入论述Java面向对象编程中对对象的理解,值得注意的是如果之前没有Java编程的基础,第一章看起来会比较吃力,而且效果也不太好,因为都是理论没有使用代码进行演示说明,所以作者也支

Java编程思想笔记:(Ant 求助)Eclipse生成/导入第三方jar包

最近读Thinking in Java,遇到第三章使用作者Bruce Eckel编写的官方包,但是从官方只能下载到.java格式的源代码. 走了点儿弯路,搞了一下,将作者的代码在Eclipse中新建一个项目导入进来.然后使用Eclipse->Export导出成jar包. 然后在我需要使用作者编写的Api的项目中,在项目上右键->properties->java build path->library->Add external jars->选择你要导入的jar包,确定(

Java Web 学习笔记 第三章 java基础(二)

第三章 java基础(二) 一.转义符 转义字符是"\",通过转义字符,可表示一些特殊的字符. 例如: '\n'  表示回车 '\t'   表示 制表符字符,一个制表符表示向右跳8-10个字符 '\\'   表示\ '\''   表示单引号 '\"'  表示双引号 "\u4e2d"表示unicode编码对应的字符(汉字:中). 二.布尔类型的概念和用法 boolean 类型用来表示肯定或否定两种可能. boolean 常用在分支语句.循环语句中. true