2019-6-22 [JavaSE] 注释.变量.数据类型.整数.浮点数.字符.布尔.类型转化.运算符

1.注释

单行://
多行: /* 注释的内容 / 不能嵌套使用
文档: /
* 注释的内容 */ 生成帮助文档。
JavaDoc注释:只能注释 类 ,类中的成员,接口
作用 :为了 javaDoc命令提供的注释。

// 关键字 定义类
// 单行注释
public class Demo1{
	/**
	是个主方法
	aaa
	xxx
	hello
	*/
	public static void main(String[] args) {
		/* 
		注释 
		多行注释
		aaa 
		*/
		System.out.println("hello");  // 简短的注释 
	}
}

格式:
/**
描述的信息
@author 解释说明文字作者
@version 版本号
*/
生成帮助文档的格式:

      javadoc -d doc Demo2.java
      javadoc -d doc -author -version Demo2.java
/**
这是一个示例类
@author 郭靖
@version 1.0 2012-2-3
*/
public class Demo2{
	public static void main(String[] args) {
		System.out.println("");
	}
}

通常:
1.代码修改的地方;
2.代码不明确的地方;
3.复杂的算法;
4.自定义的类 ,接口
5.分支结构 ,循环结构

2.变量

2.1 什么是变量

变量概念: 一个存储空间,空间中的数据可以改变。只能存储一个数据。

2.2 内存存储

内存存储:
在这里插入图片描述

2.3 变量的声明和赋值

使用语法:

//1.
		//声明变量
		//数据类型 变量名
		int age;
		//给变量赋值
		//运算符:赋值运算符
		age = 22; // 初始化:开辟空间,赋初始值
		age = 33; // 赋值
		//把数据取出来,在控制台上展示
		System .out.println(age);

		//----------------------------------------
		//2.
		//边声明 边初始化
		int age1 = 22;
		//----------------------------------------
		int n1;
		int n2;
		int n3;
		n1 = 11;
		n2 = 22;
		n3 = 33;
		//----------------------------------------
		int n4,n5,n6;
		n4 = 11;
		n5 = 22;
		n6 = 33;
		//--------------------------------------------
		int n7 = 11,n8 = 22;

2.4 命名规则

规范:小驼峰命名法。
多个单词组成,第一个单词首字母小写,后边 所有单词的首字母都大写。
myNum
myNumValue
num
.局部变量 必须 在初始化之后才能使用。
局部变量:在方法中定义的变量。(例如:main)

public static void main(String[] args) {
		//强数据类型:
		//局部变量
		int age ;
		age = 11;
		System .out.println(age);
		//int age = 22;
	}

2.在同一个作用域内 ,不能 声明 同名的变量。
注意:

2.5 变量的注意事项

注意:
1.变量名有命名规则 和 规范。
规则:(标识符命名规则)
1)只能由 字母,数字,下划线_ ,$组成;
2.不能以数字开头;
3.不能是java的关键字;
4.不能是字面值 true,false,null.

3.Java关键字

goto,const 保留字

4.编程:2个数字相互交换:

在这里插入图片描述

//必须会
        int num1 = 11;// num1 -> 22
		int num2 = 22;// num2 -> 11
		int temp;
		temp = num1;
		num1 = num2;
		num2 = temp;
	//-----------------------
		System.out.println(num1);//22  
		System .out.println(num2);//11

5.数据类型:

基本数据类型:内置数据类型。
存:数值。
整数类型: 1,2,3
内存大小: 范围
字节数据类型: byte 1字节 -128 到 127
短整数类型: short 2
整数类型: int 4
长整数类型: long 8

System.out.println(Byte.MIN_VALUE);//-128	
System .out.println(Byte.MAX_VALUE);//127
//--------------------------------	
System .out.println(Float.MIN_VALUE);//1.4E-45
System .out.println(Float.MAX_VALUE);//3.4028235E38

浮点数: 1.5 6.7
单精度: float 4
双精度: double 8
字符: char 2
unicode 值 ‘a’ ‘3’ ‘中’ 0-65535
布尔: boolean true 真的,false假的
引用数据类型:存:地址。
字符串 : String
数组: []
类: class
接口: interface

字节:单位
1B字节 = 8位 bit 0,1
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB

6.整数:

在这里插入图片描述

//一个整数的字面值,系统自动当作int类型处理
		int n1 = 11;// 11 字面值,字面量,直接量 int 11 ->int
		byte n2 = 22;
		short n3 = 33;
		long n4 = 44;// int -> long
		long n5 = 44L;//后缀 :L 或 l   long -> long
		//数字过大,超出int的范围 ,是不会自动转换为long的
		long n6 = 12345678987654321L;
		//常用 int 

		int n7 = 11;//十进制
		int n8 = 0B101;//0B  0b  二进制 
		int n9 = 017;//0    八进制
		int n10 = 0x19;// 0X  或 0x  十六进制
		//下划线分隔 增强可读性
		int n11 = 0B1111_0000_1010_1010_1000;

7.浮点数

在这里插入图片描述
在这里插入图片描述

//一个小数的字面值,系统自动当作double处理
		double n1 = 11.1; //double - > double
		n1 = 22.2d;// D 或 d 表示数值是double

		float n2 = 22.2f; //F 或 f  float -> float

		//------------科学计数法-----------------------------
		double n3 = 2.0e3;// E 或 e :以 10 为底 2.0 * 10 的3次方
		//十六进制(科学计数法)
		double n4 = 0x5.0p30; // P 或 p:以 2 为底 5.0 * 2 的30次方

注意:

import java.math.BigDecimal; //导入 BigDecimal类型
public class Demo9 {
	public static void main(String[] args) {
		//1.不能在数量级别 相差很大 的数字之间进行运算
		double n1 = 5.0e30 + 1;
		//2.算不准
		double num1 = 0.1;
		double num2 = 0.2;
		System.out.println(num1 + num2);
        //0.30000000000000004    
		//了解:
		BigDecimal m1 = new BigDecimal("0.1");
		BigDecimal m2 = new BigDecimal("0.2");
		System .out.println(m1.add(m2));
 		//0.3,调用了BigDecimal,可以进行精确运算
	}
}

8.字符

在这里插入图片描述

char c = 'a';
c = '3';
c = '中';
System.out.println(c);
//中

ASCII : 128个 基本
ISO-8859-1 :256个 ,扩展 ASCII
GB2312 :简体中文
GBK : 中文
Unicode编码 : 65536
UTF-32
UTF-16
UTF-8

9.布尔

在这里插入图片描述
true :成立的,对的,正确的
false:不成立的,不对的,不正确的

boolean result = true;
		result = false;
		System.out.println(result);

10.字符串

引用数据类型
String s = “hello";

String s = "hello";
		String name = "张三";
		String str = s + name;//字符串的拼接 (连接)
		System.out.println(str);// "hello张三"

		//----------------注意----------------
		System .out.println(5 + 6); // 11
		System .out.println(5 + 6 + "hello"); // 11 + "hello" -> "11hello"
		System .out.println("hello" + 5 + 6); // "hello5" + 6 -> "hello56"

11.编程:存储 饼干的信息

/**
练习:数据类型
存储 饼干的信息:品牌 ,重量,价格信息。
*/
public class Demo_exam13 {
	public static void main(String[] args) {
		String brand = "嘉士利";
		int weight = 1000;
		double price = 17.8;
		//品牌是:嘉士利
		System .out.println("品牌(brand):"+ brand);
		System.out.println("重量(weight):"+weight);
		System.out.println("价格(price):"+price);
		
	}
}

12.类型转换

类型转换: 赋值的类型 与 声明的类型不一致。
前提: 类型兼容(赋值的类型 是 声明的类型 的子集)。

12.1 自动类型转换:

低类型 赋值 给 高 类型
(范围小的) -》 范围大的
(高类型 完全 包括 低类型的取值范围)
byte -> short -> int -> long -> float -> double
char -> int -> long -> float -> double

	byte n = 11;
		int num = n;// byte -> int
		System .out.println(num);
		
		char c1 = 'A'; //65
		char c2 = 'B'; //66
		System .out.println(c1 + c2);

12.2 强制类型转换

高类型 赋值给 低类型
用强制转换符 : (类型)
注意:信息会丢失

//int n = 263;// int -> int
		//byte num = (byte)n;// int -> byte

		int n = 7;
		byte num = (byte)n;
		System .out.println(num);

类型提升原则:
前提:运算时。
低类型 提升 为高类型运算,结果 采取 类型级别最高的类型 作为结果类型。

13.编程:数字加密:num * 5 + 5.85 结果为整数

	/**
练习:类型转换和提升
数字加密:num * 5 + 5.85 结果为整数
*/
public class Demo_exam16 {
	public static void main(String[] args) {
		int num = 10;
		//                    double
		//              double + double //类型提升原则
		//              int    + double
		//           int * int + double
		int result = (int)(num * 5 + 5.85);
		//int reault1 = num * 5 + (int)5.85;
		System .out.println(result);//55
	}
}

14.运算符

14.1分类

功能: 算术 、关系、逻辑等
操作数的个数:一元,二元,三元

14.2 算术运算符 + - * / %

% :取余数 (取模)
/ :取整数

System .out.println( 5 + 2 );
		System .out.println( 5 - 2 );
		System .out.println( 5 * 2 );
		//---------------除法------------------
		// *除数 和被除数 都是整数,结果取整数部分。
		System .out.println( 5 / 2 );// 2 
		System .out.println( 5 / 2.0 );//2.5
		System .out.println( 5.0 / 2 );//2.5
		System .out.println( 5.0 / 2.0 );//2.5

		//System .out.println( 5 / 0 );//抛出异常
		System .out.println( 5 / 0.0 ); //正Infinity
		System .out.println( -5 / 0.0 );//负-Infinity
		System .out.println( 0 / 0.0 );//NaN 非数字
		
		//----------------取余数----------------------------------

		System .out.println( 5 % 2 );//1
		System .out.println( 5 % 2.0 );//1.0
		System .out.println( 5 % -2);// 1
		System .out.println( -5 % 2);//-1符号 与 被除数相同

15.编程:任意的三位数字反转

方法一:

/**
练习:算术运算符
任意的三位数字反转
*/
public class Demo_exam18 {
	public static void main(String[] args) {
		//1.计算-----------------------------
		int days = 46;
		int week = days / 7;
		int day = days % 7;
		System .out.println(week + "周,余" + day);
		//2.反转-------------------------------
		int num = 789;
		int n1,n2,n3;
		n1 = num % 10; // 4
		n2 = num / 10 % 10; // 3
		n3 = num / 10 / 10; //2  num / 100
		int reverseNum = n1 * 100 + n2 * 10 + n3;
		System .out.println(reverseNum);//987
	}
}

方法二:

public class Demo4{
	public static void main(String[] args){
		int num = 234;
		int n1 = num / 100; //2
		int	n2 = num - n1 * 100; //34
		int n3 = n2 / 10; //3
		int n4 = n2 - n3 * 10; //4
		System.out.print(n4);
		System.out.print(n3);
		System.out.print(n1);
	}
}

16.注意:

1.JAVA是强类型,变量和声明要求一致
2.同一个{}内不可使用同样的变量名
反之可以
3. 一个整数的字面值,系统会当作int的类型来处理
byte,short在小于他们的范围时,使用他们的类型
long在没有后缀时int会转换到long,有后缀则用long
数字多大超出int范围,是不会自动转换为long的
4.前缀表示进制,0b-二进制
0x/0X-十六进制,0-八进制
5.数字过长可用下划线4位或8位一分隔,增强可读性
下划线不可放在数字的开头和结尾和前缀以及小数
如0b1111_0101_1111_0000_1011
6.浮点数就是小数
后缀D/d表示数值是double类型
后缀F/f表示数值是Float类型
7.十六进制表示浮点数,可以用double
需要科学记数法表示,0x5.0p30
0x表示十六进制,p表示以二为底的多少次方,30为开方数,p/P为2
8.使用bigdecimal可以消除误差
9.char 0-65535(0-2的16次方-1)
10.byte有负数范围,所以char无法包括byte
11.任何一个数和10取余都可以得到最后一位
12.浮点型无法精确存储

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值