java doubke类型转换为String_Java第一周笔记
第一章初始java
java概述与环境的搭配
1 程序就是模拟现实世界,解决现实问题而使用计算机编写一些程序。
2 Java的历史:
1998年发布的JDK1.2(j2ee j2se j2me)
2004年发布JDK1.5改名java5.0
2004年由甲骨文发布Java8.0(JDK1.8)
3Java的语言特点:
面向对象 简单性 跨平台
4 java执行机制:
源文件:编写Java源文件(我们也称之为源代码文件),它的扩展名为.java;
编译:然后通过编译器把源文件编译成字节码文件,字节码文件扩展名为.class;
运行:最后使用解释器来运行字节码文件。
5.开发java程序的步骤:
1、编写一个java源程序
新建记事本,将后缀名改为.java
2、编译java源程序,语法:javac 源文件名.java
编译后会生成一个.class的字节码文件
3、运行java程序,运行的是.class的文件,语法:java 源文件名
6 java中的注释:
//注释内容 单 行注释:表示对下一条语句进行一个解释
/* 注释内容 */ 多行注释:表示对下面一段语句进行一个解释
/**注释内容 */ 文档注释:表示对一段文本注释
注释的语句是不会进行编译的
第二章Java语言基础
变量的概念
计算机内存中的一块存储空间,是存储数据的基本单元.
他是计算机语言中能储存计算结果或能表示值抽象概念,可以通过变量名来访问获取变量名所指向在内 存中存储的各种数据。
整个内存就好像是酒店,当中包含了多个房间。
房间的容量(大小)不同(单人间、两人间...)
每个房间都有一个唯一的门牌号。
每个房间的住客(类型)也不同。
酒店的房间 — 变量
房间的类型 — 数据类型
房间门牌号 — 变量名
房间的住客 — 值
变量的定义流程
声明:数据类型 变量名;int money; (开辟整数变量空间)。
赋值:变量名 = 值;money = 100; (将整数值赋给变量)。
应用:System.out.print(money);
注意:Java是强类型语言,变量的类型必须与数据的类型一致。
变量的定义方式
声明变量的3种方式:
先声明,再赋值:【常用】
数据类型 变量名;
变量名 = 值;
声明并赋值:【常用】
数据类型 变量名 = 值;
多个同类型变量的声明与赋值:【了解】
数据类型 变量1 , 变量2 , 变量3 = 值3 , 变量4 , 变量5 = 值5;
变量的命名
变量名的名是有规则的,需要使用有代表含义的单词,但不能使用关键字,例如:public,int,class 等。
变量名首字母必须为字母(a-z A-Z),下划线(_),或者美元符号($)开始,后面每个单词字母大写,或 者可以跟数字。
关键字
定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)
特点:关键字中所字母都为小写
.标识符的使用
定义:凡是自己可以起名字的地方都叫标识符。
涉及到的结构:
包名、类名、接口名、变量名、方法名、常量名
规则:(必须要遵守。否则,编译不通过)
Java中的变量具有严格的数据类型区分。(强类型语言)
在Java语言中,任何一个值,都有其对应类型的变量。
数据类型
声明long型变量,必须以"l"或"L"结尾
通常,定义整型变量时,使用int型。
整型默认类型是:int型
浮点型,表示带小数点的数值
float表示数值的范围比long还大
定义float类型变量时,变量要以"f"或"F"结尾
通常,定义浮点型变量时,使用double型。
浮点型默认类型为:double
布尔型:
只能取两个值之一:true 、 false
常常在条件判断、循环结构中使用
字符
定义char型变量,通常使用一对'',内部只能写一个字符
表示方式:1.声明一个字符 2.转义字符 3.直接使用 Unicode 值来表示字符型常量
转义字符
引用数据类型(字符串)
类型转换(1)
自动类型转换:
两种类型相互兼容。
数值类型(整数和浮点数)互相兼容。
目标类型大于源类型。
double大于int。
表达式的类型就会自动转换提升
Int 与 char可以互相转换。
类型转换(2)
强制类型转换:
把取值范围大的强制转换为小的。
两种类型相互兼容。
目标类型小于源类型。
强制转换容易出现数据丢失,如double的小数被丢失
算数运算符
算数运算符:两个操作数进行计算。
连接符:+:只能使用在String与其他数据类型变量之间使用。
算数运算符:一元运算符(只有一个操作数)
a++ 先运用在计算
a-- 先运用在计算
++a 先计算在运用
--a 先计算在运用
赋值运算符
赋值运算符:等号右边赋值给等号左边。
关系运算符
关系运算符:两个操作数进行比较。
逻辑运算符
逻辑运算符:两个boolean类型的操作数或表达式进行逻辑比较。
&& 与 (可理解为“并且”)
|| 或 (可理解为“或者”)
! 非 (可理解为“取反”)
注意:
1. &&中如第一个条件不成立后面就不会再计算判断。
2. ||中如果第一个条件成立后面就不会再计算判断。
3. 优先级为:!>&&>||
三元运算符
三元运算符:将判断后的结果赋值给变量。
自动类型提升
进行算数运算时:
两个操作数有一个为double,计算结果提升为double。
如果操作数中没有double,有一个为float,计算结果提升为float。
如果操作数中没有float,有一个为long,计算结果提升为long。
如果操作数中没有long,有一个为int,计算结果提升为int。
如果操作数中没有int,均为short或byte,计算结果仍旧提升为int。
注意:任何类型与String相加(+)时,实为拼接,其结果自动提升为String。
控制台录入
程序运行中,可在控制台(终端)手动录入数据,再让程序继续运行。
导包语法:import 包名.类名;//将外部class文件的功能引入到自身文件中。
使用顺序:
导入 java.util.Scanner。
声明 Scanner 类型的变量。
使用Scanner类中对应的方法(区分类型):
.nextInt(); //获得整数
.nextDouble(); //获得小数
.next(); //获得字符串
.next().charAt(0);//获得单个字符
注:如果输入了不匹配的数据,则会产生 java.util.InputMismatchException。
第三章 选择结构与分支结构1.if选择结构
语法:
if(布尔表达式){
//代码块
}
执行流程:
对布尔表达式进行判断。
结果为true,则先执行代码块,再执行后续代码。
结果为false,则跳过代码块,直接执行后续代码
2.if-else选择结构:
语法:
if(布尔表达式){
//代码块1
}else{
//代码块2
}
执行流程:
对布尔表达式进行判断。
结果为true,则先执行代码块1,再退出整个结构,执行后续代码。
结果为false,则先执行代码块2,再退出整个结构,执行后续代码。
3.多重if选择结构
语法:
if(布尔表达式1){
//代码块1
}else if(布尔表达式2){
//代码块2
}else if(布尔表达式3){
//代码块3
}else{
//代码块4
}
执行流程:
表达式1为true,则执行代码块1,再退出整个结构。
表达式2为true,则执行代码块2,再退出整个结构。
表达式3为true,则执行代码块3,再退出整个结构。
以上均为false,则执行代码块4,再退出整个结构。
注意:相互排斥,有一个为true,其他均不再执行。
4 嵌套if选择结构
语法:
if(外层表达式){
if(内层表达式){
//内层代码块1
}else{
//内层代码块2
}
}else{
适用于在一个判断的基础再做一次判断的情况
语法:if(要满足的条件1){
满足条件1得到的结果
if(要满足的条件2){
满足条件2得到的结果
}
}else{
不满足条件1得到的结果
}
执行流程:
当外层条件满足时,再判断内层条件。
注意:[
一个选择结构中,可嵌套另一个选择结构。
嵌套格式正确的情况下,支持任意组合。
switch分支结构
语法:
switch(变量 | 表达式){
case 值1:
逻辑代码1;
case 值2:
逻辑代码2;
case 值n:
逻辑代码n;
default:
未满足时的逻辑代码;
}
执行流程:
如果变量中的值等于值1,则执行逻辑代码1。
如果变量中的值等于值2,则执行逻辑代码2。
如果变量中的值等于值n,则执行逻辑代码n。
如果变量中的值没有匹配的case值时,执行default中的逻辑代码。
满足条件的时候所做的循环操作
根据switch表达式中的值,依次匹配各个case中的常量。一旦匹配成功,则进入相应case结构
中,调用其执行语句。
当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字
或此switch-case结构末尾结束为止。
break,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch-case结构
switch结构中的表达式,只能是如下的6种数据类型之一:
byte 、short、char、int、枚举类型(JDK5.0新增)、String类型(JDK7.0新增)
case 之后只能声明常量。不能声明范围。
break关键字是可选的。
default:相当于if-else结构中的else.
default结构是可选的,而且位置是灵活的。
如果switch-case结构中的多个case的执行语句相同,则可以考虑进行合并。
break关键字可在匹配的case执行后,跳出整个结构。
if结构和switch的区别
相同点:
都可以实现多分支结构。
不同点:
Switch只能处理等级的条件判断,而且条件是整数或者字符等变量的等值判断。
(switch在JDK0.7以后才能进行字符串的判断)
If结构特别是个某个变量处于某个区间的情况(处理区间和等值)。
局部变量
概念:声明在方法内部的变量,必须先赋值再使用。
作用范围:定义行开始到所在的代码块结束。
注意:多个变量,在重合的作用范围内,不可出现重名(命名冲突)。
第四章:循环结构
while循环
语法:
while(布尔表达式){
//逻辑代码(循环操作)
}
执行流程:
先对布尔表达式进行判断,结果为true,则执行逻辑代码。
本次执行完毕后,再次进行判断,结果仍旧为true,则再次执行逻辑代码。
直至布尔表达式的结果为false时,才会退出循环结构,执行后续代码。
while的特点
特点:首次即有入口条件,先判断、再执行,适用于循环次数不明确的情况。
do while循环
语法:
do{
逻辑代码(循环操作)
}while(布尔表达式);
执行流程:
先执行一次循环操作之后,再进行布尔表达式的判断。
如果结果为true,则再次执行循环操作。
如果结果为false,才会退出循环结构,执行后续代码
do while的应用场景
应用场景:适用于循环次数不明确的情况。
while和do-while的区别
都是循环。
执行次序不同
初识情况条件不满足情况下。
While循环一次都不会执行。
do-while至少会执行一次。
for循环
语法:
for(初始部分 ; 循环条件 ; 迭代部分){
//循环操作
}
执行流程:
首次执行初始部分(仅一次)。
对布尔表达式进行判断,结果为true,则执行逻辑代码。
本次执行完毕后,执行迭代部分,再次判断,结果仍旧为true,则再次执行逻辑代码。
直至布尔表达式的结果为false时,才会退出循环结构,执行后续代码。
for的特点
特点:首次即有入口条件,先判断、再执行,适用于循环次数明确的情况。
流程控制break
break:终止、跳出switch、循环结构。
流程控制continue
continue:结束本次、进入下一次循环。
break中带标号
break有两种形式:不带标号和带标号。
不带标号:跳出当前循环,继续执行循环体下面的语句;
带标号:跳出当前循环并跳出标号所指的循环,继续执行所指的循环体下面的语句
continue中带标号
continue有两种形式:不带标号和带标号。
不带标号:终止当前循环,直接开始下一轮循环。
带标号:跳出本次循环,直接转到标号所指定的代码段的下一轮循环。
嵌套循环
概念:在一个完整的循环结构中,嵌套另一个完整的循环结构。