文章标题

来源:互联网 发布:厦门淘宝客服工资 编辑:程序博客网 时间:2024/05/21 02:49

Day01-02
1. Java语言简介
1.1计算机语言
第一代 机器语言 01110100010101010
第二代 汇编语言
第三代 高级语言 c语言 java
第四代 sql语言 select * from user where name=””
第五代
1.2 Java语言的优点
1.2.1一次编译处处运行
这里写图片描述

   1.2.2自动分配和回收内存

1.3 Java语言发展简史
Java是Sun(Stanford University Network)于1995年推出的一种高级编程语言
1998年 JDK1.2,更名为Java2
2000年 JDK1.3,JDK1.4
2004年 JDK1.5,更名为JDK 5.0
2005年 JDK6.0
2009年 Oracle(甲骨文)74亿美元收购Sun。取得java的版权。
2011年 java7.0
2014年3月19日,java8.0
1.4《Java》之父——詹姆斯•高斯林

1.5 Java体系
Javase (java standard edition , java的标准版) 主要用于桌面程序的开发
Javaee (java enterprise edition ,java的企业版) 网站开发和基于b/s模式的软件开发
Javame(Java Platform,Micro edition ,java的微缩版)嵌入式开发(手机,小家电)
2.环境搭建
2.1java的环境的搭建:

jre:  java运行环境。  jre =  java虚拟机 + 核心类库(辅助java虚拟机运行的文件)jdk: java开发工具集   jdk = jre + java开发工具。

软件下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
注意: jdk安装路径不能带有中文路径或者是空格。
jdk目录的介绍:
bin: 存放的是java的开发工具。
db : JDK7附带的一个轻量级的数据库,名字叫做Derby。
include :存放的调用系统资源的接口文件。
jre : java运行环境
lib : 核心类库。
src.zip : java源代码

java常用工具
javac.exe 启动java编译器对指定的java源文件进行编译、。
java.exe 启动java虚拟机解释并执行指定的class文件。
配置环境变量
 path:用于指定操作系统的可执行指令的路径
如何找到path的环境变量:
我的电脑——-属性————>高级系统设置———->高级———>环境变量————path
把javac所在的路径拷贝到path环境变量中即可。
 注意: 标点符号、空格等字符全部要用英文的!
 验证
 javac:Java源文件的编译工具。
 java:Java字节码解释程序。
显示文件的扩展名:
打开文件夹的工具菜单->文件夹选项->查看->去掉 “隐藏已知文件类型的扩展名”复选框里面的√

2.2常用DOS命令
盘符切换 (f: —>回车)
显示当目录下的所有内容(dir —>回车)
创建目录 (md 目录名称 —>回车)
打开目录 (cd 目录名称—>回车)
退出目录 (cd.. —>回车)退到根目录 (cd\ —>回车)
删除目录 (rd 目录名称 —>回车)
删除文件 (del 文件名 —>回车)
清屏 (cls —>回车)
创建一个文件并且指定写入的数据(echo 数据>文件名)
查看指定的文件内容(type 文件名)
通配符(*可以匹配任意的文件名)
内容补全(tab)
上下方向键 找回上一次所写过的命令。
退出Dos (exit —>回车)

2.3 Java程序开发的三个步骤

这里写图片描述
2.4第一个java程序
第一步: 新建一个txt文件。把后缀名改成java。
第二步:编写一个类,java 代码全部要写到类里面。
使用一个关键字class即可定义个类。
格式:
public class 类名{
代码;
}

     class  Student{

}
备注: 大括号表示是一个类的范围,在类的范围之内都可以写代码。

第三 步: 编写一个主方法。 主方法的写法是固定的,是一个程序的入口,代码从主方法开始执行。

示范:Hello World!
练习:打印一首唐诗或宋词
2.5开发Java应用的注意事项
 一个源文件中至多只能有一个public的class声明,其它类的个数不限。
 一个源文件中有n个类时,编译结果的class文件就有n个;
 源文件名必须和它里面定义的public的类名相同
 Java语言中单词拼写严格区分大小写
 main方法是Java应用程序的入口方法,它有固定的书写格式:public static void main(String [ ] args){ … }
 每个语句以分号(;)结束
 空格只能是半角空格符或是Tab字符
 程序正文中只能使用英文的标点符号.;:=+* ,?()空格等
2.6常见Java开发工具
 编辑器
• 记事本
• EditPlus
• UltraEdit (UE)
 集成开发环境(IDE)
Eclipse
MyEclipse

3.注释
通过注释提高程序的可读性,是java程序的条理更加清晰,易于区分代码行与注释行。另外通常在程序开头加入作者,时间,版本,要实现的功能等内容注释,方便后来的维护以及程序员的交流。

单行注释:用//表示,编译器看到//会忽略该行//后的所文本
多行注释:用//表示,编译器看到/时会搜索接下来的/,忽略掉//之间的文本。
文档注释:用/* /表示,是java特有的注释,其中注释内容可以被JDK提供的工具 javadoc
所解析,生成一套以网页文件形式体现的该程序的说明文档。

注意:多行注释中可以嵌套单行注释,多行注释不能嵌套多行注释。

文档注释 (编写软件说明书)
1. 需要使用sum给我们提供的javadoc工具生成一个html的说明文档。
2. 只能抽取public的属性或者方法内容。
格式:
Javadoc –d 指定存储文档的路径 -version –author(可选) 目标文件

@author 作者@version 版本@param 方法的参数@return 返回值

注释的使用细节:
三种注释可以出现在程序的任何地方,但是不推荐找任意位置。
1. 编程习惯:
1. 给那条语句进行说明,注释应该写在该语句的旁边。
2. 单行注释一般写在语句的后面多行注释和文档注释一般写在语句的上面
注意:文档注释只能出现在类、属性、方法的上面。

注释的调试作用:
1. 可以作为初学者的调试方式。
2. 可以帮助初学者确定代码的错误之处。

4常量
常量的概述
常量是指在程序运行过程中其值不能改变的量。
常量类型
Java中常量的分类:
整数常量 : 所有整数 10 2 100
小数常量 : 所有小数 3.14 6.88
布尔常量 : 只有true和false
字符常量 :使用’’引起来的单个字符 ‘ ’ ‘d’ ‘#’
字符串常量 :使用“”引起来的字符序列,“” 、“a” 、”” “dfdgdfgdfg”
null常量 : 只有一个值null
char 类型
char类型表示的是单个字符类型,任何数据使用单引号括起来的都是表示字符。字符只能有一个字符,比如:普通的老百姓穿上军装就是军人。
注意:特殊字符的转义序列:转义字符
转义字符的概述:
特殊字符使用”\”把其转化成字符的本身输出,那么使用”\”的字符称作为转移字符。
需求:使用输出语句,打印出带引号的信息例如输出。
System.out.println(“teacher said”java is fun”“);编译是无法正常通过的。语法有错误,编译器读到第二个引号就认为是字符串的结束,剩余的不知道怎么处理。如何解决这个问题:java中使用转义字符来表示特殊的字符。一个转义字符以反斜杠(\)开始。
问题:想要打印带引号的字符串怎么办,就可以使用反斜杠(\)后跟字符,这个反斜杠就是转义字符。
转义字符 名称 Unicode
\b Backspace (退格键) \u0008
\t Tab (Tab键盘) \u0009
\n Linefeed (换行) \u000A
\r Carriage Return(回车) \u000D
\ Backslash (反斜杠) \u005C
\’ Single Quote (单引号) \u0027
\” Double Quote (双引号) \u0022

\r 表示接受键盘输入,相当于按下回车。
\n 表示换行。
\t 制表符,相当于Table键
\b 退格键,相当于Back Space
\’ 单引号
\’’ 双引号
\ 表示一个斜跨
上述问问题解决:System.out.println(“teacher said\”java is fun\”“);
注意:换行符就是另起一行,回车符就是回到一行的开头,所以我们平时编写文件的回车符应该确切来说叫做回车换行符

boolean 类型
boolean由数学家Geogore Boole 发明
boolean 类型用来存储布尔值,在java中布尔值只有2个,true和false。
boolean flag=true;
flag=false;

Java中这8中基本数据类型都是小写的。
5.进制
进制:进制是一种记数方式 ,可以用有限的数字符号代表所有的数值。由特定的数值组成。
整型的表现形式
1. 十进制: 都是以0-9这十个数字组成,不能以0开头。
2. 二进制: 由0和1两个数字组成。
3. 八进制: 由0-7数字组成,为了区分与其他进制的数字区别,开头都是以0开始。
4. 十六进制:由0-9和A-F组成。为了区分于其他数字的区别,开头都是以0x开始。
进制的由来
几乎每个民族最早都使用都十进制计数法,这是因为人类计数时自然而然地首先使用的是十个手指。 但是这不等于说只有十进制计数法一种计数方法。例如,世界各国在计算年月日时不约而同地使用“十二进制”12个月为一年又如:我国过去16两才算为一斤,这就是“十六进计数法”,一个星期七天,这个就是”七进制计算法”。 计算机是由逻辑电路组成,逻辑电路通常只有两个状态,开关的接通与断开,这两种状态正好可以用“1”和“0”表示。 2^2 2^1 2^0

一个开关:2^1
两个开关:2^2 00 01 10 11
三个开关:2^3 000 001 010 011 100 101 110 111
如果要在计算机里面保存十进制的7.
十进制与二进制之间的转换
十进制转二进制的转换原理:除以2,反向取余数,直到商为0终止。

7 0111
11 1011
15 1111
二进制转十进制的转换原理:就是用二进制的每一个乘以2的n次方,n从0开始,每次递增1。然后得出来的每个数相加

存在问题:书写特别长,不方便记忆。
这里写图片描述

十进制与八进制之间转换
1. 八进制的由来
二进位制在计算机内部使用是再自然不过的。但在人机交流上,二进位制有致命的弱点——数字的书写特别冗长。例如,十进位制的100000写成二进位制成为11000011010100000。为了解决这个问题,在计算机的理论和应用中还使用两种辅助的进位制——八进位制和十六进位制。二进位制的三个数位正好记为八进位制的一个数位,这样,数字长度就只有二进位制的三分之一,与十进位制记的数长度相差不多。例如,十进位制的100000写成八进位制就是303240。十六进位制的一个数位可以代表二进位制的四个数位,这样,一个字节正好是十六进位制的两个数位。十六进位制要求使用十六个不同的符号,除了0—9十个符号外,常用A、B、C、D、E、F六个符号分别代表(十进位制的)10、11、12、13、14、15。这样,十进位制的100000写成十六进位制就是186A0。

  1. 八进制的特点
    由数字0-7组成。即使用三个开关表示一个八进制数。
    10进制转换8进制原理:就是用十进制的数字不断除于8,取余数。
    这里写图片描述
    八进制转十进制原理: 用把进制的数不断乘以8的n次方,n从0开始,每次递增1。

八进制和二进制转换

十进制与十六进制之间的转换

十六进制特点:由0~9 a(10) b(11) c(12) d(13) e(14) f(15)组成。

十进制转十六进制原理:就是不断除以16,取余数。
这里写图片描述
代码体现:
人使用的十进制 、 计算机底层处理的数据是二进制、八进制、十六进制,
那么如果给计算机输入不同的进制数据呢?

5.变量
变量的概念
用于存储可变数据的容器。实际上是内存中的一块空间。
数据类型
基本数据类型(四类八种): 数值型(整型,浮点型)(byte short int long float double) 字符型char 布尔型boolean
引用数据类型:String str=”dffdfd”;
整型
byte 代表一个字节的大小 8bit 2(8) -128~127 -2(7)~2(7)-1 256
short 代表两个字节的大小 16bit 2(16) -2(15)~2(15)-1
int 代表四个字节的大小 32bit 2(32) -2(31)~2(31)-1
long 代表八个字节的大小 64bit 2(64) -2(63)~2(63)-1
如果一个数值没有采取特殊的处理,那么该整数默认的类型是int。 800
可以使用数值后面添加L或小写L改变默认的整数类型。8888888888L
浮点型
float 代表四个字节的大小 32bit 3.14F
double 代表八个字节的大小 64bit 3.14
注意:java程序中所有的小数默认的类型是double类型,所以需要使用特殊的符号改变默认的小数类型。
数据类型从小到大的顺序
byte short int long float double

字符型
char 代表两个字节的大小 16bit 2(16) -2(15)~2(15)-1 ‘ ’里面只能放一个字符
存储原理:将字符映射为码表中对应的十进制数据加以存储。
转义字符: \” \t \ \r \n \’
字符串:不属于基本数据类型,属于引用类型 必须用“”引起来 “sfsd” ”$” ””
布尔型
boolean 占一个字节。只有true与false两个值。

标识符命名规定
就是程序员在定义java程序时,自定义的一些名字,例如helloworld 程序里关键字class 后跟的Demo,就是我们定义的类名。类名就属于标识符的一种。
标识符除了应用在类名上,还可以用在变量、函数名、包名上。(要求同学们先记住,以后会详细见到这些)。

 标识符由26个英文字符大小写(a~zA~Z)、数字(0~9)、下划线(_)和美元符号($)组成。
 不能以数字开头,不能是关键字和保留字
 严格区分大小写
 标识符的可以为任意长度

标识符最好能做到见名知义 age sex name
常见的关键字
Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名。
这里写图片描述

备注:不必死记硬背,如果使用关键字作为标识符,编译器能提示错误。
Goto contr 是java的保留关键字,意思是java并没有使用goto,以后是否使用未定。

合法的标识符
ComputeArea,radius,area $cast _cast gz_itcast
注意:由于Java严格区分大小写,CAST 和cast是完全不同的标识符
非法标识符
class (关键字)
100java(不能以数字开头)
Hello java (空格不是组成标识符的元素)
注意:只是为了增加规范性、可读性而做的一种约定,标识符在定义的时候最好见名知意,提高代码阅读性。

定义(声明)变量
格式: 数据类型 变量名字1 , 变量名字2 ,……变量名字n ,;
案例:
int age; 声明了一个int的变量。
double d; 声明了一个double数据类型的变量
float f; 声明了一个float数据类型的变量。
备注:变量名的首字母都一般都是以小写字母开始。studentName

变量初始化
初始化方式1: 数据类型 变量名字 = 数值。 int age = 20;
初始化方式2: 数据类型 变量名字 ;变量名字 = 数值。int age; age=20;
注意: int i, j = 12
案例:
方式1: double d = 3.14; int i=3 ;
方式2: double d ; d = 3.14 ; int i ; i=3 ; int j,k=4 ;
练习 :
1.请各位同学使用Java代码定义如下几个变量,根据数据的内容自已确定数据类型,并显示结果
姓名、年龄、性别、身高、体重、电话号码
输出结果: String name=”张三”;
姓名 年龄 性别 身高 体重 电话
张三 18 男 184 99.5 110
李四 21 女 172 43.8 112
2.初始化各个数据类型的变量。
数据类型转换
4.6.1自动类型转换(也叫隐式类型转换)
可以将一个数赋值给更大数值范围的变量,例如可以经byte 变量赋值给short变量可以将short变量赋值给int变量可以将int变量赋值给long变量。
Java内部其实做了工作就是自动将数值进行了类型提升,就叫做自动类型转换(也叫隐式类型转换)
byte b = 1; //00000001
short s = b; //00000000 00000001
int i = s;
long lon = i;
double d = lon; //1.0

自动类型转换(也叫隐式类型转换)
要实现自动类型的转换,需要满足两个条件,第一两种类型彼此兼容,第二目标类型取值范围必须大于源类型。所有的数值类型,包括整形和浮点型彼此都可以进行转换。

例如:
byte b=100;
int x=b;
System.out.println(x);//程序把b结果自动转换为int类型。

强制类型转换(也叫显式类型转换)
不可以将一个数值赋给范围更小数值范围的变量,除非进行类型转换。
int i = 100;
byte b = i;
System.out.println(b);
上述例子发生了什么,发生了类型转换。
想要将int的类型值放入到byte类型变量b中,无法放入,编译报错。

当两种类型彼此不兼容,或者目标类型取值范围小于源类型(目标是byte源是int)
无法自动转换,此时就需要进行强制类型转换。

强制类型转换需要注意:
可能损失精度!!!
int a=128;
byte b=(byte)a;
System.out.println(b);//-128
/*
* 此时的强转已经造成了数值的不准确
*/
int
00000000 00000000 00000000 10000000

10000000
byte

类型转换的原理
可以把byte 理解为1两的碗,short 2两的碗,int 4两的碗,long 8两的碗。1两碗的满碗酒可以倒入 2两 4两 8两的碗中。但是 4两碗的酒倒入1两碗的酒就有一些问题。

什么时候要用强制类型转换
比如小数部分只想保留整数部分.
一定要清楚要转换的数据要在转换后数据的范围内否则会损失精度.
public static void main(String[] args) {
byte b = 100;
b = (byte) (b + 2);
System.out.println(b); // 102
//舍弃小数部分
double d=5.5;
int num=(int)d;
}

表达式的数据类型自动提升

算术表达式,逻辑表达式
所有的byte型、short型和char的值相互运算时将被提升到int型。
自动类型提升

byte b = 3;
int x = 4;
x = x + b;// b会自动提升为int 类型参与运算。
System.out.println(x);// 7

强制类型转换

byte b = 2;
/*
* 强制类型转换,强制将b+2强制转换为byte类型,再赋值给b
*/
b = (byte) (b + 2);
System.out.println(b);// 4
思考1
byte b=126;
问:既然数据默认的有数据类型,那么126 默认是int类型的,为什么存储到byte类型时不会报错呢。
126 是常量java在编译时期会检查该常量(每个常量)是否超出byte类型的范围。如果没有可以赋值。
思考2:byte b=128;能否正常的编译和运行。
该语句会出现编译错误,128超出了byte变量的存储范围,所以出现编译错误。

思考2
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
哪一句编译失败?为什么?
b =3+4, 3和4都是常量,所以java在编译时期会检查该常量(每个常量)是否超出byte类型的范围。如果没有可以赋值。例如b=128+1 就无法编译通过。b=127+1;也是无法通过。
b =b1+b2 不可以,因为b1 和b2 是变量,表达式求值时,变量值会自动提升为int型,表达式结果也就成了int型,这是要赋值给byte型的b,必须进行强制类型转换了。

思考3:System.out.println(‘a’+1)结果
美国人为了让计算机识别他们生活中的文字,让二进制表示生活中的文字.所以一个字母代表了一个二进制.,二进制也有十进制的表现形式.,把生活中的字母都用数字来标识,例如97 代表a ,98 代表 b。打印’a’就把a作为输出显示,没有疑问。但是 ‘a’+1 有加号涉及到了运算。根据java自动类型提升规则,同样道理 char 提升为int 。就把’a’代表的数字体现了出来。a 表示的是97 97+1就是98; 那么 想要查看98 表示的char 是什么 怎么实现呢 ?就要用到刚才介绍的强制类型转换了 System.out.println(char(‘a’+1));就取到了98 在ASCII码表中表示的字符。大写A 和小写a 在 ASCII有不同的表现。还有一个概念字符’1’ 在ASCII中 不是数字 1,可以运行代码查看,到此就可以明白了char 类型,char类型也是可以参与运算的,为什么可以参与运算呢。因为字符在ASCII表中都有对应的数字体现。所有的计算机兼容ASCII。
System.out.println(‘a’+1); //98
System.out.println((char)(‘a’+1)); //b
补充问题:
int i=’a’+’b’;
System.out.println(i);//结果?
System.out.println(“hello”+’j’); //结果?
总结:
所有数值运算符都可以用在char型数据上,如果另一个操作数是一个数字或者字符,那么char会自动提升为int型,如果另一个操作数是字符串,那么字符就会和字符串相连。

小结:
取值范围小的类型的变量转化为取值范围大的类型的变量,自动转换
取值范围大的类型的变量转化为取值范围小的类型的变量,强制转换,注意:可能损失精度
取值范围小的类型的变量与取值范围大的类型的变量运算,会自动转换为取值范围大的类型
byte short char运算会自动转换为int类型
boolean不能和其他任何类型相互转换

练习:七种类型相互转换
6.运算符
算术运算符

正负号(+,-)

除法

%取模
求余数

取模的正负取决与被除数:

1. 自增
(++)前自增:先自增完毕,再运算整个表达式,语句分号前面的都是运算表达式;

后自增,先运算完整个表达式(分号前面的都是表达式),再进行自增;

  备注:参与自增运算的操作数据每次会加1.

结论:
如果运算符在变量的前面,则该变量自增1或者自减1,然后返回的是变量的新值,如果运算符在变量的后面,则变量也会自增或者自减1,但是返回的是变量原来的值。++在前就是先运算,再取值,++在后就是先取值,再运算。

自增自减运算符案例:
完成如下运算:
一;
int i = 10;
int newNum = 10 * i++;
System.out.println(newNum);//?
二:
int i = 10;
int newNum = 10 * ++i;//?
System.out.println(newNum); //?
一可以理解为
int i = 10;
int newNum = 10 * i;
i = i + 1;
二可以理解为
int i = 10;
i = i + 1;
int newNum = 10 * i;

练习:
1. 使用程序判断一个整数是偶数还是奇数
2. 使用程序判断假设今天是星期4,那么问10天后的今天是星期几?
3. 将数值表达式使用java程序翻译,并通过程序求出运算结果
其中int x=1;int y=2,int a=3,int b=4,int c=5;

案例一:
public static void main(String[] args) {
// 判断一个整数一奇数还是偶数
int x = -100;
// 奇数是,1,3,5…偶数是2,4,6…显然整数除2能整除,也就%(取模)结果为0就是偶数。 int result = x % 2;
System.out.println(result);
// 使用判断语句进行判断。
if (result == 0) {
System.out.println(x + “是偶数”);
} else {
System.out.println(x + “是奇数”);
}
}
方案二 使用判断该数结果是否是奇数。
(但是该算法有问题,如果被判断的整数为负数是否有效?)
public static void main(String[] args) {
// 判断一个整数一奇数还是偶数
int x = 1;
// 奇数是,1,3,5…偶数是2,4,6…显然奇数%的结果为1.
int result = x % 2;
System.out.println(result);
// 使用判断语句进行判断。
if (result == 1) {
System.out.println(x + “是奇数”);
} else {
System.out.println(x + “是偶数”);
}
}
改进
public static void main(String[] args) {
// 判断一个整数一奇数还是偶数
int x = -1;
// 奇数是,1,3,5…偶数是2,4,6…显然奇数%的结果为1.
int result = x % 2;
System.out.println(result);
// 使用判断语句进行判断。
if (result != 0) {
System.out.println(x + “是奇数”);
} else {
System.out.println(x + “是偶数”);
}
}

案例三:判断星期
public static void main(String[] args) {
// 设定今天是星期1,用int 1表示星期一,0表示星期天
int today = 1;
// 十天后是星期几?,一个星期是7天,7天之后又是星期1,可以用?
int future = (today+10) % 7;
if (future == 0) {
System.out.println(“10天后是星期天”);
} else {
System.out.println(“10天后是星期:” + future);
}

}

案例4:
int x = 1;
int y = 2;
int a = 3;
int b = 4;
int c = 5;
int result = (3 + 4 * x) / 5 - 10 * (y - 5) * (a + b + c) / x + 9* (4 / x + (9 + x) / y);
System.out.println(result); // 442

 赋值运算符

= , +=, -=, *=, /=, %=
运算符 运算 范例 结果
= 赋值 a=3,b=2 a=3,b=2
+= 加等于 a=3,b=3;a+=b; a=5,b=2;
-= 减等于 a=3,b=2,a-=b; a=1,b=2;
= 乘等于 a=3,b=2,a=b; a=6,b=2
/= 除等于 a=3,b=2,a/=b; a=1,b=2;
%= 模等于 a=3,b=2,a%=b; a=1,b=2
a+=b 可以想象成 a=a+b;
变量声明完了之后,可以使用赋值语句(assignment statement)给变量赋一个值,Java中使用等号(=)作为基本的赋值运算符(assignment operator),
格式如下:
variable = expression;
变量 = 表达式;

变量我们已经知道如何声明,表达式具体如何定义?
表达式的定义:
表达式涉及到值(常量),变量和通过运算符计算出的值,以及他们组合在一起计算出的新值。
x =y+1;

例如:
public static void main(String[] args) {
int x = 1; // 声明int变量x, 赋值1给变量x
int y = 0; // 声明int变量y, 赋值0给变量y
double area; // 声明double变量area
double radius = 1.0; // 声明double变量radius,并赋值1.0给变量radius
x = 5 * (3 / 2) + 3 * 2; // 将=右半部分表达式的计算结果赋值给变量x
x = y + 1; // 将变量y和1的求和的值赋值给变量x
area = radius * radius * 3.14159; // 将计算面积的值赋值给变量area
}
赋值运算符问题
问题1:
int x;
System.println(x = 1);
如何理解?
答:等价于
x=1;
System.out.println(x);
注意:不能 1=x,变量名必须在赋值运算符的左边。

问题二:
int x;
int y;
int z;
x = y = z = 100;
如何理解?
答:等价于
int x;
int y;
int z;
z = 100;
y = z;
x = y;

问题三:short s1 = 1;
s1= s1+1;
s1+=1;
问:s1= s1+1; s1+=1; 与有什么不同?
对于short s1 = 1; s1 = s1 + 1; 由于s1+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器将报告需要强制转换类型的错误。
对于short s1 = 1; s1 += 1;由于 += 是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译。

 比较运算符

如何比较两个值?使用比较运算符 3和5谁大,在java中如何比较?
比较运算符比较的两边操作数,结果都是boolean的,只有true和false两种结果。
运算符 运算 例子 结果
== 相等于 4= =3 false
!= 不等于 4!= 3 true
< 小于 4 < 3 flase

大于 4>3 true
<= 小于等于 4<=3 false
= 大于等于 4>=3 true
Instanceof 检查是否是类的对象 “hello”instanceof String true
注意的细节:
1.使用比较运算符的时候,要求两种数据类型必须一致。
byte、short、char 会自动提升至int。

逻辑运算符
什么是逻辑运算符?连接比较运算符的符号称之为逻辑运算符。那么为什么要连接比较运算符? 举例:当你去公司应聘,招聘要求,男性(判断为真),并且开发经验1年(判断为假)那么,我们还适合去面试吗,不能,因为只满足了一项,总体是不满足的(总体结果为假)。
逻辑运算符用于对boolean型结果的表达式进行运算,运算的结果都是boolean型。我们的比较运算符只能进行一次判断,对于对此判断无能为力,那么逻辑运算符就可以经将较运算符连接起来。

逻辑运算符用于连接布尔型表达式,在Java中不可以写成3

原创粉丝点击