JAVASE-DAY03

一、基础纲要:


运算符

1.赋值运算符

              1.1基本赋值运算符: =   java中唯一个自右向左运算的符号

              1.2扩展赋值运算符:+=  -=  *= /= %=             

              1.3:优缺点

                     缺点:

                            不直观

                     优点:

                            自动做强制类型转换

                            提高执行效率

                     推荐使用扩展赋值运算符

2.比较运算符|关系运算符:> <   >=  <=  ==!=

              2.1结果是boolean类型的值           

                     byte short  int  long  float  double  char

              2.2可以做基本数据类型的比较,可以做引用数据类型的比较

浮点数参与运算结果可能不准确

3.逻辑运算符 & | !^            

短路 如果左边的操作的值就能决定最终整个表达式的结果,右面的表达式就不在执行

              &&  两个操作数都是true才是true,一个为false结果就为false

              ||  一个为true就是true,两个都为false才为false       

              推荐使用短路与短路或

4.条件运算符 | 三目| 三元       

              条件表达式 ? 值1 : 值2 ;        

              执行流程:

                     4.1.先执行条件表达式  -->值为boolean类型的表达式

                     4.2.如果结果为true, 最终结果取值1

                     4.3.如果结果为false,最终结果取值2

5.位运算符

              &二进制的两个数,同一位置的值,进行逻辑判断,两个值如果有一个为0就位0,两个值都是1才是1

              |同一位置的两个数,如果有一个为1就是1,两个都是0才是0

              ^同一位置的两个数,如果相同为0,不同为1        




6.运算符的优先级 :

              单目算数位关系,逻辑三目后赋值

两个常用类

1.使用引用数据类型的方式

              1.1创建引用数据类型的变量|引用

                     引用数据类型变量名|引用 = new 引用数据类型(); --公式 

              1.2使用功能

                            引用.功能名字();  

       2.Scanner:

              2.1导包 import 相对地址;

                     提供类Scanner的位置

                     位置:类的上面导包

              2.2创建Scanner类型的引用

              2.3使用:功能名字();

                     nextInt();  接收用户输入的int类型整数

                     nextByte();  接收用户输入的byte类型整数

                     nextShort();  接收用户输入的Short类型整数

                     nextLong();  接收用户输入的Long类型整数

                     nextDouble();  接收用户输入的Double类型整数

                     nextFloat();  接收用户输入的Float类型整数

                     next();接收用户输入的String类型数据

                            有效字符开始接收,遇到空格停止接收,遇到enter停止功能

                     nextLine();接收用户输入的一整行的内容

                            从第一个位置开始接收,遇到enter结束

              close();一定要在用完之后关闭,否则当前类中重新开启也不能用

注意:nextLine()功能之前如果存在系列的next功能.需要处理遗留在缓冲区的enter

2.4字符串比较是否相等   字符串1.equals(字符串2) 

3.Random 类  产生随机数

              3.1导包 java.util.Random

              3.2创建类型的引用  Random

              3.3使用功能

                     产生随机整数

                            nextInt()   --> int范围内的随机整数

                            nextInt(n)  -->随机产生 [0,n) 随机整数

                            n只能决定最大范围

                     产生随机小数

                            nextDouble()[0.0,1.0)随机小数 

       注意:         

              伪随机数             

              常用公式:            

                     [min,max]引用.nextInt(max-min+1)+min;

控制语句

       1.分类:

              顺序结构 : 默认 从上到下 从左到右

              选择结构 : 根据某些条件执行不同的代码

              循环结构 : 重复执行一些代码


       2.选择结构:

                     if..else

                     switch          

2.1 if ..else

2.1.1单分支|单选择

                     if(条件表达式){

                            语句体...

                     }            

                     条件表达式:值为boolean类型的表达式

                     执行流程:

                            计算条件表达式的结果

                            如果false,就跳过if结构,继续向下执行

                            如果为true,执行{}中的语句体                 

                     2.1.2双分支|双选择

                     if(条件表达式){

                            语句体1...

                     }else{

                            语句体2

                     }

                     如果条件满足执行语句体1,条件不满足执行语句体2

                     2.1.3多选择|多分支

                     if(条件表达式1){

                            语句体1...

                     }else if(条件表达式2){

                            语句体2...

                     }else if(条件表达式3){

                            语句体3

                     }else{

                            语句体n;

                     }

                     执行流程:

                            1.先执行条件表达式1,如果为true,执行语句体1

                            2.如果为false,计算条件表达式2,如果为true,执行语句体2

                            3.如果为false,计算条件表达式3,如果为true,执行语句体3

                            4....

                            5.如果以上条件都不满足,执行else中的语句体n                       

                     注意:语句体前后的{}可以省略,语句体只有一句的时候可以省略

2.2.switch  定值判断  

              switch(表达式){

                     case值1:

                            语句体1;

                            break;

                     case值2:

                            语句体2;

                            break;

                            ....

                     default:

                            语句体n;

                            break;

              }

              表达式:byte,short,int,char , 枚举(1.5),字符串(1.7)这几种类型的值

              case: case后面接的值是与表达式进行判断,必须是一个值,不能是区间

              break:防止case穿透 结束switch语句

case穿透:从满足条件的语句体开始执行,如果遇到break结束switch,如果没有break下面的case不再判断直接执行语句体

              default:默认的,相当于else,如果以上都不满足,就执行default中的内容

                     default位置可以改变               

       2.3.if与switch之间的区别

              if可以做区间判断

              switch定值判断

              能用switch都可以用if 能用if的不一定能用switch

3.循环:重复执行一些代码

              for

              while

              do...while


              for循环

                     for(条件初始化;条件判断;条件变化 ){

                            循环体语句;

                     }


                     执行流程:

                            1.先执行条件初始化  声明一个变量并且赋值 i

                            2.条件判断   对i进行判断   值为boolean类型的表达式

                                   如果值为false,for循环结构结束,如果值为true,执行循环体语句

                            3.条件变化

                            重复执行2,3步                 

                     注意:在循环体语句中可以使用i的值  

                             变量i可以决定循环执行的次数

二、拓展

 位运算:左右移和符号位

位移运算符

                     >>>无符号右移/2^n

       将运算符左边的对象向右移动右侧指定的位数,在高位补上0;

>>  (有符号)右移 

       将运算符左边的对象向右移动右侧指定的位数,值为正,高位补0,值为负,高位补1;           

<<  左移*2^n

 将运算符左边的对象向左移动右侧指定的位数,在低位补上0  

float和double类型数据在内存中的存储方式

1.浮点数:

计算机中有两种表示实数的方法:定点表示和浮点表示

定点数:小数位数固定于某个位置,这种方式的整数和小数部分的表示形式和普通整数的表示形式没有什么区别

浮点数:小数点位置可以浮动的数据,以科学技术法的形式表示

2.表示形式:

N=M*R^E;

N为浮点数,M为尾数(mantissa),E为阶码(exponent),R为阶的基数,也就是底数,计算机里的底数不会是10的,一般是2、8、16。在一台计算机里,所有数据中的R是确定,并且相同的。

3.在计算机内的形式:MS  E    M

MS为符号位

如单精度浮点数(32位),符号位占1位,阶码8位,尾数23位

4.举例:单精度浮点数3.75

(1) 首先转化为2进制表示 −3.75=−(2+1+1/2+1/4)=−1.111×21−3.75=−(2+1+1/2+1/4)=−1.111×21 
(2) 整理符号位并进行规格化表示 −1.111×21=(−1)(1)×(1+0.1110 0000 0000 0000 0000 000)×21−1.111×21=(−1)(1)×(1+0.1110 0000 0000 0000 0000 000)×21
 (3) 进行阶码的移码处理 (−1)(1)×(1+0.1110 0000 0000 0000 0000 000)×21(−1)(1)×(1+0.1110 0000 0000 0000 0000 000)×21 =(−1)(1)×(1+0.1110 0000 0000 0000 0000 000)×2128−127=(−1)(1)×(1+0.1110 0000 0000 0000 0000 000)×2128−127 
于是,符号位S=1,尾数M为1110 0000 0000 0000 0000 0001110 0000 0000 0000 0000 000
阶码E为12810=1000 0000212810=1000 00002,
则最终的32位单精度浮点数为 1 1110 0000 0000 0000 0000 000 1000 0000 
--------------------- 作者:shuzfan 来源:CSDN 原文:https://blog.csdn.net/shuzfan/article/details/53814424 

5.有效位数

2^-23=0.00000011920928955078125

2^-22=0.0000002384185791015625

因此0.0000001和0.0000002之间的小数是没办法精确描述的,因此一般说float精确到小数点后第七位

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 198,932评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,554评论 2 375
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 145,894评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,442评论 1 268
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,347评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,899评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,325评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,980评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,196评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,163评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,085评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,826评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,389评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,501评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,753评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,171评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,616评论 2 339

推荐阅读更多精彩内容

  • 1 顺序语句 语句:使用分号分隔的代码称作为一个语句。 注意:没有写任何代码只是一个分号的时候,也是一条语句,...
    哈哈哎呦喂阅读 368评论 0 0
  • 1 关键字 1.1 关键字的概述 Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或...
    哈哈哎呦喂阅读 640评论 0 0
  • 1.编译程序(1)gcc xx.c,他会默认生成一个a.out的可执行文件,在a.out所在目录,执行./a.o...
    萌面大叔2阅读 1,253评论 0 1
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,820评论 6 13
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,700评论 0 10