黑马程序员——01.Java编程基础(一) ——常量、变量、运算符

一.Java的基础组成

1.关键字--被赋予特殊含义的单词

????????????学习Java的过程中去记忆。

2.标识符---就是指名称(类名、对象名、变量名、函数名、对象名等)

? ? ? ?????????1.26?个英文字母的大小写、0~9数字、_和$(不允许有空格)

? ? ? ? ????????2.数字不能开头,关键字不能用来命名

? ? ? ?????????3.类名-首字母大写(XxxYyyZzz);函数名-(xxxYyyZzz);变量名对象名(xxxyyyzzz)

(1)和(2)是强制规则,(3)是潜规则

3.注释

????????1.单行注释——//注释内容

????????2.多行注释——/*注释内容*/

????????3.文档注释——/**注释内容*/

4.常量与变量

5.运算符

6.语句

7.函数

8.数组

?

二.常量(常量是一个确定的值,不需要名字)

常量类型:整数常量,小数常量,boolean常量(值只有true,false),字符常量,字符串常量,

null常量(值只有null--意为空,用于作为引用型变量的值)

定义常量的格式:

????final 常量类型 常量名=值;

例如:final int yuanzhoulv=3.1415926

注意:常量的值是固定的,只要被定义出来值就再也不能改变,也就是说一个常量的标识符只能对以一个值不能修改。

三.进制

? ? ? ? ? ? -------进制只不过是个数的表现形式

1.八进制

逢8进1,比如0234(开头是0,表示这是一个八进制数,其表示数字156,算法:从最低位数起0 1 2,? 4*8^0+3*8^1+2*8^2=156)

2.十六进制

逢十六进1,10~15由A~F表示,比如0x9C(开头0x表示这是一个十六进制数字,其表示数字156,算法:从最低位数起0 1 2, ? C*16^0+9*16^1=156)

3.十进制????

逢十进一,比如156(表示数字156,算法:从最低位数起0 1 2, ?6*10^0+5*10^1+1*10^2=156)

4.二进制

逢二进一,比如0000-0000-1001-1100,(表示数字156,算法:从最低位数起0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15,由于0*2^n=0,所以为0的位置略去,?2^2+2^3+2^4+2^7=156)????

8位取值范围【-2^7——2^7-1】;16位取值范围【-2^15——2^15-1】;

32位取值范围【-2^31——2^31-1】;64位取值范围【-2^63——2^63-1】

总结:

1.在计算机中,所有的数据都是先转化为二进制再进行二进制间的变化,一切的基础都是二进制

2.计算机的基础算法就是二进制,生活中多用十进制,十进制转八和十六先转成二进制再算比较好

3.二进制的负数:(其开头肯定是1)

-156如何用16位的二进制表示?(正的取反加1)

先是156的表示:0000-0000-1001-1100,取反(1变0,0变1),

得到:1111-1111-0110-0011,加1,得到1111-1111-0110-0100------这就是-156

1111-1111-0110-0100又表示十进制的哪个负数?(减1取反)
减1得:1111-1111-0110-0011取反得:0000-0000-1001-1100,对应正数156,所以应该是-156

---------这一节应该记住标识符的命名规则,二进制 正的负要取反加1,负的正要减1取反

四.数据类型

????????????????????

???????????? ???????? 整数型——byte(8位)/short(16位)/int(32位)/long(64位)【默认int】????

???????????? 数值型????????

???????????????????? 浮点型——float(32位)/double(64位)【默认double】

基础数据类型 字符型——char(16位) 包含单个字母、单个数字、单个符号、单个汉字;格式‘
字符型‘

?

???????????? 布尔型——Boolean 只有两个值false和true

对象——

引用数据类型 接口——interface

???????? 数组—— []

注意:除char的值的算法是0~2*2^(n-1)【不包括最大值】,其他的值的算法是-2^(n-1)~ 2^(n-1)【不包括最大值】

五.变量

?????????????1.?同一区间内不能定义同名的变量(函数的{}就是一个区间)

???2.定义变量:?变量类型变量名=初始化值;例:int?x=9;

????什么时候定义变量呢?

??????数据不确定且需要存储时,就要定义一个变量来完成存储动作

?????3.类型转换:

自动类型提升??例:byte?b=3;b=b+2;(会编译失败,因为2默认是int,左边b被自动提升为int,得出的5是int,无法赋值给左边的byte的b)? ?左右类型不一样就只能强制转换????自动类型提升会发生在整数型、浮点型、字符型之间,同类型相遇都是自动提升为默认类型,不同类型间是整数提升为浮点数,字符型提升为整数,字符型提升为浮点数。 ?例如:‘t‘+5+‘\n‘+8.0的值为139.0;由于字符易被提升,所以做好用""(字符串)标注字符

强制类型转换??例:byte?b=3;b=(byte)(b+2);【byte必须有()】

? ? ? ? ? ? ? ? ? ? ? ? ? ? ??double?d=314321412.14142414513;

??????????????????????????????int?i=(int)d;//强制转换,只会取d的整数部分

补充:float保留7位有效数字,double保留16位有效数字 ? float f=1341.56464f(必须加f) ?

?

六、运算符

  1. 算术运算符?+? -? *?? /? %(模,即取余数)? ++(递增) ?--(递减) ??(例如:int a=4;a++;其运行时,是先使用此时内存中a的值4,然后进行a+1操作并将值赋予a【先用后算】;???? int a=4;++a;?其运行时,是先进行a+1操作并将值赋予a,然后使用此时内存中a的值【先算后用】)?? ? ??%模即取余数??例如:5%3=2???? 1%5=1??? -3%3=0?? -3%4= -3?? 3%-4=3? -3%-4=-3 ? ? ??(都遵循着数学规律)??记忆;取模时有负数参与,正负看左边? ? + ?字符串连接符
  2. 转义字符(仍旧是char类型的字符)通过\(右斜)来转变后面字母或字符的含义? ? ?\n----换行? ?\r-----回车键 ? ?\b----退格键?? \t------制表符,相当于tab键??"\\hello\\"显示\hello\ ? ? "\"hello\""显示"hello"
  3. 赋值运算符6个 ? ? ?=? ??+= ???-=?? *=? ???/= ? ? %= ?后面五个的算法相当于++a,都是先算后用,例如:x+=5,即x=x+5;其还可左右自动转化,例如:byte b=5;b+=9;就可以直接编译通过
  4. 比较运算符六个----【比较表达式就是一个布尔型的变量】

    == ? != ? < ? ?> ? <= ? >= ? ?

    比较的目的就是为了获得true或者false这个结果

  5. 逻辑运算符6个---用来连接两个布尔型的变量,最终获取true或者false的结果【构成的表达式也是一个布尔型变量】 & ? && ? ?| ? || ? ??^ ??! ?? ??

? ? ? ? ??假设A和B都是布尔型变量? ? ? ? ? ? ? ? ? ? ? ?


&(且)


A&B


有一个false则结果是false【一假则假,全真则真】


&&(且)


A&&B


第一个是false则直接判断为false


|(或)


A|B


有一个true则结果是true【一真则真,全假则假】


||(或)


A||B


第一个是true则直接判断为true


!(非)


!A


A若是true,则!A是false;A若是false,则!A是true


^(异或)


A^B


同则false,异则true

?

6. ?位运算符7----<<??????? >>?????? >>>??????? &???? |???????? ^??????? ~【针对二进制的特有算法】

? ? ?由于所有数据的基础都是二进制,所以任何数据都可以进行位运算


<<


9<<3


得到72


9的二进制左移三位


相当于十进制9*(2^3)


不论正负,空位0补


>>


9>>3


得到1


9的二进制右移三位


相当于十进制9/(2^3)


余数忽略不计,正数空位0补


-9>>3


得到-2


-9的二进制右移三位


相当于十进制-9/(2^3)


有余数则商加-1,负数空位1补

?

>>> ? ?无符号右移,空位都是0补,所以负数的结果与>>不同

? ?????<< ? ? ? ?>> ? ? ?>>>的运算效率比 * ? /要高

? ? 0为false,1为true

? ? ?& ? ?0110&0101=0100也可写成6&5=4

? ? ?| ? ??0110|0101=0111也可写成6|5=7

? ? ?^ ? ?0110^0101=0011也可写成6^5=3

? ? ?~(反码,即取反) ? ? ?~0000-0000-0000-0110=1111-1111-1111-1001即~6=-7,

? ? ? ? ? ? ? ? ? ? ? ?同理~-7=6;【~正=-正-1 ? ? ? ?~负=-负-1】

?

^的特性:m^n^n=m ? ? m^n^m=n(可用于设置密钥,m,n不仅可以是数字,也可以是字符,字符串,符号等)

?

位运算符的经典应用:

? ? ? ?1.?将365转化为八进制

? ? ? ? ? ??365&7,365>>(3*1)&7, ?365>>(3*2)&7, ?365>>(3*3)&7,365>>(3*4)&7

? ? ? ?2.互换变量m,n的数值

? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ?第一种方法最易想到;第二种方法节省空间但数值大时,易发生类型转换的问题;第三种既节约空间又无转换问题

记忆:包含比较运算符的表达式就是boolean型的变量;逻辑运算符连接的是boolean变量,其结果是boolean变量;

时间: 2024-08-28 20:40:40

黑马程序员——01.Java编程基础(一) ——常量、变量、运算符的相关文章

01.Java编程基础(一) ——常量、变量、运算符

一.Java的基础组成 1.关键字--被赋予特殊含义的单词 ????????????学习Java的过程中去记忆. 2.标识符---就是指名称(类名.对象名.变量名.函数名.对象名等) ? ? ? ?????????1.26?个英文字母的大小写.0~9数字._和$(不允许有空格) ? ? ? ? ????????2.数字不能开头,关键字不能用来命名 ? ? ? ?????????3.类名-首字母大写(XxxYyyZzz);函数名-(xxxYyyZzz);变量名对象名(xxxyyyzzz) (1)和

黑马程序员(Java)----基础语法(三)

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1.7 程序流程控制 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能. 流程控制语句分类流程控制语句分类:顺序结构.选择结构.循环结构. 1.7.1顺序结构:从上往下,依次执行. 示例: class ShunXuJieGouDe

黑马程序员(Java)----基础语法(五)

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1.9 数组 1.9.1 数组的概念 概念:存储同一种数据类型的多个元素的容器.数组既可以存储基本数据类型,也可以存储引用数据类型 格式: 格式1:数据类型  []  数组名; 格式2:数据类型  数组名  []; 注意:这两种定义做完了,数组中是没有元素值的.如何对数组的元素进行初始化呢? 1.9.2 数组的初始化 数组初始化概述:Java中的数组必须先初始化,然后才能使用.所谓初始化:就是

黑马程序员(Java)----基础语法(四)

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1.8 方法 1.8.1方法的的定义 定义:完成特定功能的代码块.在很多语言里面有函数的定义,而在Java中函数被称为方法. 格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...){ 方法体语句; return 返回值; } 解释: 修饰符:目前就用 public static.后面我们再详细的讲解其他的修饰符. 返回值类型:就是功能结果的数据类型. 方法名:符合命

黑马程序员——I/O流基础知识

I/O流 Io流 代表有能力产生数据的数据源对象或者有能力接收对象的数据接收端对象.字节流和字符流.中文字符也转编码表,jbk2万多中文字.unicode全世界的字符收录.乱码,两种不同形式的编码表.字符流里面的对象融合了编码表,以便别人使用的使用用你指定的编码方式. 基类:读和写~ 字节流 InputStream,OutputStream 字符流 Reader,Writer Writer 主力方法是writer().既然IO流是操作数据的,而数据的最常见体现形式是:文件. 需求:准备在硬盘上创

黑马程序员_Java网络编程

1,IP地址和InetAddress IP地址是互联网上每台计算机都有的自己的标记,IP地址分为5类,A类保留给政府,B类给中等规模的公司,C类给任何需要的人,D类用于组播,E类用于实验. A类  1.0.0.1-126.255.255.254  B类  128.0.0.1-191.255.255.254   C类  192.0.0.1-223.255.255.254  D类 244.0.0.1-239.255.255.254 E类 240.0.0.1-255.255.255.254 在以后开发

黑马程序员_C语言总结-基础部分

C语言基础 1.C语言的关键字 1>关键字就是C语言提供的有特殊含义的符号,也称为保留字,C语言中一共有32个关键字,这些关键字都有自己的含义 例如:int double float if  else switch for 等等 2.标示符的概念: 1>标示符就是在程序中自定义的一些名称,比如函数名,变量名,结构体名等等这些都是标示符 2>命名规则: 1>只能由英文字母的大小写和数字以及_下划线组成,且首字母必须为字母或者下划线_ 2>在C语言中是严格区分大小写的,比如if是

黑马程序员 内部类 Java

内部类:将一个类定义在另一个类里面,对里面那个类就叫做内部类(内置类,嵌套类). 访问特点:内部类可以直接访问外部类中的成员,包括私有成员.而外部类要访问内部类中的成员必须要建立内部类的对象. class Outer{ private int  x=3; class Inner{ void function(){ function1(); System.out.println("内部类"+x); } } void function1(){ System.out.println(&quo

黑马程序员之Java多线程学习

android培训  java培训 期待与您交流! 这一篇文章主要关于java多线程,主要还是以例子来驱动的.因为讲解多线程的书籍和文章已经很多了,所以我也不好意思多说,呵呵.大家可以去参考一些那些书籍.我这个文章主要关于实际的一些问题.同时也算是我以后复习的资料吧,.呵呵大家多多指教. 同时希望多结交一些技术上的朋友.谢谢. -------------------------------------------------------------------------------------