java基础数据类型-int类型-浮点型-数据类型的转换--day02
1. 变量的命名
记住一点:不可以以数字开头
类名:首字母大写的驼峰体
变量名,方法名:首字母小写的驼峰体
包的名字:与python语言一样 全部小写
2. 常量
整形:123
实数型:3.14
字符:‘a’
字符串:"abc"
布尔值:true false
3. 变量
语法:数据类型 变量名[=初始赋值]
int a=20,b=30;
int age,weight;
	public static void main(String[] args){
		int age=18;
		System.out.println(age);
	}
}
如何反汇编?
javap -v xxxx.class # -v 就是verbos 汇编的意思

变量在内存中与生活举例
类似于酒店里面的房间,
- 房间有不同的房号根据这个房号就能找到对应的房间并访问
- 房间有不同的类型 有单人间 有双人间 也有套房
  
变量的作用域 只在最近的 {}内生效
局部变量:方法里面定义的变量
成员变量:类中定义的变量
注意:这段代码不能运行
public class TestVar04{
	static int b = 20;
	public static void main(String[] args){
		int a = 10;
		System.out.println(b); // 可以访问b
	}
}
4. 进制
逢几进一
十进制:99, 0, -1
八进制:以0开头 05
十六进制:0x开头 0x15
二进制:0b开头 0b010101

4.1 进制转换
二进制转十进制
1101
12^3   + 12^2  +  02^1  + 12^0
=8+4+0+1=13
十进制转二进制

八进制转十进制
16
18^1 +   68^0
=8+6=14
4.2 整型数据类型
byte short int long

byte能表示的最大数127是怎么计算出来的?
01111111   //第一位是符号位
12^6 +    12^5  +  12^4  +  12^3  +  12^2  +  12^1  +  1*2^0
=64+32+8+4+2+1=127
public class TestVar05{
	public static void main(String[] args){
        //变量赋值的时候可以为不同的进制
		int num1=12; //默认的是十进制
		System.out.println(num1);
		int num2=012;//前面加上0 表示8进制
		System.out.println(num2);
		int num3=0b10;//前面加上0b便是二进制
		System.out.println(num3);
		//byte 类型
		byte num4 = 126;//超出范围会报错
		System.out.println(num4);	
        short num5 = 30000;
		System.out.println(num5);
        //int i = 12345678910; // 12345678910 超出了int的范围
        int i = 12345;
		System.out.println(i);	
		// 就是要把12345678910 赋值给long;后面加上L
        long l = 12345678910L;
		System.out.println(l);	        		
	}
}

5 浮点型
float: 占用2字节
double: 占用4字节
常量: 3.14 0.314 314.0
变量:java实际存储的是用科学计数法存储AeB=A*10^B  只存储了A B两个部分
public class TestVar06{
	public static void main(String[] args){
        double f1 = 314e2;
        System.out.println(f1);		// 31400.0
		double f2 = 314e-2;
		System.out.println(f2);    // 3.14
	}
}
public class TestVar07{
	public static void main(String[] args){
        double num1 = 3.14;
		System.out.println(num1);
		double num2 = 314e-2;
		System.out.println(num2);
		// 注意:浮点型 默认的是double,将double类型的值赋值给float,后面加上F;
		float f1 = 3.142345678623F;
		System.out.println(f1);
		// 浮点型的类型 不要进行比较
		float f2 = 0.3F;
		double d2 = 0.3;
		System.out.println(f2 == d2);
	}
}

6. 字符串
public class TestVar08{
	public static void main(String[] args){
		System.out.println("HelloWorld");
		/*
		单个字符: ''
		字符串: ""
		*/
		char ch1 = 'a';
		System.out.println(ch1);
		char ch2 = 'A';
		System.out.println(ch2);
		char ch3 = '4';
		System.out.println(ch3);
		char ch4 = '?';
		System.out.println(ch4);
		char ch5 = '中';
		System.out.println(ch5);
		char ch6 = ' ';  // 一个空格可以 两个空格就是字符串 需要用双引号
		System.out.println(ch6);
		// 转移字符
		char ch7 = '\n';  // 换行符
		System.out.println("aaa"+ch7+"bbxxxb");
		System.out.println("aaa\nbbxxxb");  // 这两的效果是一样的
        System.out.println("aaa\tbbxxxb");  // \t制表符  大小是8位 不够的填空格aaa_____bbxxxb
        System.out.println("aaabbbccc\bxxxx");  // \b 光标向左移动一格 类似退格键
		System.out.println("aaabbb\rxxxx");  // \r 光标移到行首 进行替换操作 -->xxxxbb
        System.out.println("\"java\"");  // -->"java"
		}
}

7. 整形与字符型之间的转换
public class TestVar09{
	public static void main(String[] args){
		System.out.println("HelloWorld");
		/*
		char类型 看到的是字面常量,
		但是底层存储与计算的时候实际是按照一个数值进行的,
		这个数值就是在ASCII	中的值
		*/
		char ch1 = 'A';
		System.out.println(ch1);
		System.out.println(ch1+90);
		System.out.println(155-ch1);
		char ch2 = '中';
		System.out.println(ch2);    // 实际存储的是20013
		System.out.println(ch2+90);  // 20103
		System.out.println(20103-ch2);
		int a = 20013;  // 中 在计算机中的实际存储值就是 20013
		char c1 = (char)a;  // 将这个值强转成char 就得到 中
		System.out.println(c1);
		int num1 = (int)ch2;// 得到 中的 实际存储值
		System.out.println(num1);
		int num2 = '中';
		char ch5 = 20013;
		System.out.println(num2);  // 20013
		System.out.println(ch5);  // 中
		// 面试题
		char ch6 = '中' + 2;
		System.out.println(ch6);  //丯
	}
}

8 最常见的一个乱码问题

字符编码windows默认的是GBK

9. 布尔类型
存储空间只占用一个bit 不是0就是1
public class TestVar10{
	public static void main(String[] args){
		System.out.println("HelloWorld");
		boolean flag1 = true;
		System.out.println(flag1);
		boolean flag2 = 5==8;
		System.out.println(flag2);
		boolean flag3 = 5< 6;
		System.out.println(flag3);
	}
}
10. 数据类型的转换-强转-自动转
public class TestVar12{
	public static void main(String[] args){
		double d1 = 6;// int --> double 直接转
		System.out.println(d1);
		int i1 = (int)6.5; // double -->int 强制转 会丢失
		System.out.println(i1);
		// 多种数据类型参与运算的时候 整数 浮点字符 都可以参与运算 布尔类型不能
		double d2 = 12+129L+2.1415926F+3.1+'a';
		System.out.println(d2);
		// 转换的原则
		// byte,short,char -->int -- >long -->float-->double
		// 找出级别最高的,进行转化
		//   12+ 129L+ 2.1415926F+ 3.1+  'a';
		//   int long  float       float char
		// 最长的为float
		//   12.0 129.0 2.1415926F  3.1 97.0
		// 结果如何强转int
		int i2 = (int)(12+129L+2.1415926F+3.1+'a');
        System.out.println(i2);	
        /*
		左边<右边:放不下强转
        左边>右边:放得下 直接转
     	*/	
        byte b1 = 127;  // 127在byte的范围内 可以直接赋值
        System.out.println(b1);
        byte b2 = (byte)128; // 128不在byte的范围内 需要强转会丢失
        System.out.println(b2);
	}
}
为什么128转byte会变成-128?


11. final scanner的使用
import java.util.Scanner;
public class TestVar13{
	public static void main(String[] args){
		final double PI = 3.1415926; //final 修饰的变量为常量 不能修改
		int r = 5;
		// 求周长
		double c = 2*PI*r;
		System.out.println("周长为:"+c);
		// 求面积
		double s = PI*r*r;
		System.out.println("面积为:"+s);
	}
}
import java.util.Scanner;
public class TestVar13{
	public static void main(String[] args){
		final double PI = 3.1415926; //final 修饰的变量为常量 不能修改
		// int r = 5; // r 是固定的如何从外部输入?
		Scanner sc = new Scanner(System.in);
		System.out.print("请输入半径:");
		int r = sc.nextInt();
		// 求周长
		double c = 2*PI*r;
		System.out.println("周长为:"+c);
		// 求面积
		double s = PI*r*r;
		System.out.println("面积为:"+s);
	}
}

练习:
import java.util.Scanner;
public class TestVar14{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		// 年龄  身高   姓名   性别
		// int  double string char
		//int age = 18;
		System.out.println("输入年龄:");
		int age = sc.nextInt();
		//System.out.println(age);
		//double height = 180.0;
		System.out.println("输入身高:");
		double height = sc.nextDouble();
		//System.out.println(height);
		//String name = "张三";
		System.out.println("输入名字:");
		String name = sc.next();
		//System.out.println(name);
		System.out.println("输入性别:");
		//char sex = '男';
		char sex = sc.next().charAt(0);
		//System.out.println(sex);	
		System.out.println("总:");
		System.out.println("年龄:"+age+'\n'+"身高:"+height+'\n'+"名字:"+name+'\n'+"性别:"+sex);
	}
}

java基础数据类型-int类型-浮点型-数据类型的转换--day02的更多相关文章
- Java基础语法:注释、数据类型、字节
		Java基础语法:注释.数据类型.字节 注释 单行注释:// 多行注释:/* 注释 */ 文档注释:/** 注释 */ 数据类型分为两大类:基本类型和引用类型 八大基本数据类型 整数类型 byte(占 ... 
- 转:JAVA里面的int类型 和Integer类型,有什么不一样
		JAVA里面的int类型 和Integer类型,有什么不一样 原文链接:http://blog.csdn.net/wuxinliulei/article/details/11099565 java.l ... 
- JAVA里面的int类型 和Integer类型,有什么不一样
		JAVA里面的int类型 和Integer类型,有什么不一样 原创 2013年09月04日 23:15:11 标签: java / 2120 编辑 删除 JAVA里面的int类型 和Integer类型 ... 
- 【转】Java基础笔记 – 枚举类型的使用介绍和静态导入--不错
		原文网址:http://www.itzhai.com/java-based-notes-introduction-and-use-of-an-enumeration-type-static-impor ... 
- java基础04-数据类型扩展及面试题
		java基础04-数据类型扩展及面试题讲解 public class demo02 { public static void main(String[] args){ // 一.整数拓展: 进制 二进 ... 
- Java 基础类型转换byte数组, byte数组转换基础类型
		Java 基础类型转换byte数组, byte数组转换基础类型 Java类型转换 java类对象转化为byte数组 
- 聊聊java基础,int值强制类型转换成byte
		聊聊java基础,int值强制类型转换成byte 知识点:byte.short.char在表达式中会自动提升为int 之前做一个应用时,打印IP地址,因为是用4个byte存储的,所以打印的时候值范围是 ... 
- Java基础之枚举类型Enum的使用
		Java基础之枚举类型Enum的使用 定义 public enum AccruedCleanEnum { SPREAD("1","发票"),OTHER(&quo ... 
- Java基础(二)  基本类型数据类型、包装类及自动拆装箱
		我们知道基本数据类型包括byte, short, int, long, float, double, char, boolean,对应的包装类分别是Byte, Short, Integer, Long ... 
- C语言基础学习基本数据类型-int类型与int变量
		int类型与int变量 针对不同的用途,C语言提供了多种整数类型.各种整数类型的区别在于所提供数值的范围,以及数值是否可以取负值. 在之前的实例中你已经看到过,int关键字用于声明整型变量. int类 ... 
随机推荐
- FolkMQ 内存型消息中间件,v1.0.21 发布
			简介 采用 "多路复用" + "内存运行" + "快照持久化" + "Broker 集群模式"(可选)+ 基于 Sock ... 
- Gradle构建微服务项目
			先说一下初衷把:为啥突然要用Gradle,公司后期自研项目都使用Gradle构建...... 1.下载安装 这个就不说了,网上大家搜索一下,配置一下环境变量即可 2.Groovy的一些语法Gradle ... 
- JOISC2020题解
			\(\text{By DaiRuiChen007}\) Contest Link A. Building 4 Problem Link 题目大意 给 \(2n\) 个数对 \((a_i,b_i)\), ... 
- 最后一次迭代——城院GO导航
			1. 程序运行截图展示: 2. 程序开发分工详情 葛方杰:负责地点汇总界面的前端基本界面设计以及上导航栏和侧导航栏的布局以及简单的数据绑定,以及做了自定义组件卡,用瀑布流的形式封装自定义组件卡来展现地 ... 
- 【笔记整理】requests使用代理
			使用proxies参数传递代理信息 import requests if __name__ == '__main__': proxies = { # 这个字典的key不可以乱写,必须是http和htt ... 
- 2024年 Kubernetes 四大趋势预测
			Kubernetes 在生产环境中的复杂性已经成为常态,在2023年这个平台工程盛行的时代,容器管理的最大亮点可能在于其灵活性,然而在运维政策和治理等方面仍然存在诸多挑战.Kubernetes 最大的 ... 
- Spring源码学习之Web数据绑定器WebDataBinder
			WebDataBinder 1.描述 特殊的数据绑定器用于从web请求参数到JavaBean对象的数据绑定.专为web环境,但不依赖于Servlet API;作为更具体的DataBinder变体的基类 ... 
- Spring事务状态处理
			Spring事务提交后执行:深入理解和实践 在Java开发中,Spring框架的事务管理是一个核心概念,尤其是在企业级应用中.理解和正确使用Spring事务对于保证应用的数据一致性和稳定性至关重要.本 ... 
- 《低代码发展白皮书(2022年)》&《2022低代码·无代码应用案例汇编》,发布了
			摘要:信息通信研究院云计算与大数据研究所副所长栗蔚发布了<低代码发展白皮书(2022年)>&<2022低代码·无代码应用案例汇编>. 本文分享自华为云社区<华为参 ... 
- Springboot中,如何读取配置文件中的属性
			摘要:在比较大型的项目的开发中,比较经常修改的属性我们一般都是不会在代码里面写死的,而是将其定义在配置文件中,之后如果修改的话,我们可以直接去配置文件中修改,那么在springboot的项目中,我们应 ... 
