java基础day_01整理

编程语言发展史

第一阶段:二进制语言 ,只有计算机能读懂

第二阶段 :汇编语言 ,计算机能看懂,人类也能看懂

第三阶段: 编程语言 ,人类读懂,计算机能读懂

例子:C、C++、Java、PhP

JDK环境配置

环境

想要使用某些软件,必须要给软件配置环境

配置了环境后,在计算机中可以在任意位置去启动想要使用的软件

运行java项目就需要配置java运行环境

  

在Path下配置环境变量

 

 进制转换

 二进制与十进制之间转换

二进制转成十进制是从后向前按照每个位上的数按为相乘 ,再按权相加

例如二进制数字 01101101 转成十进制就是从后往前按权相加

为:1*2^0+0*2^1+1*2^2+1*2^3+0*2^4+1*2^5+1*2^6=

        1+0+4+8+32+64=109

计算器演示

 二进制转成十进制则是除二取余,余数结果取反(反向排列)

例如十进制数字15 转成二进制数 ,过程如下:

image.png

计算机的存储单位

最小单位:1位 表示一个1或者1个0

1个字节 8位   二进制最多表示为  1111 1111,即十进制的 255

1B=8byte

1KB=1024B

1MB=1024KB

1GB=1024MB

1TB=1024GB

命令提示符

查看网络: ping

查看计算机相关信息 : ipconfig /all

切换盘符 : 盘名:

切换目录: cd 目录名称

启动软件 : 输入应用名称

关于JDK,JRE,JVM

三者属于包含关系

简单来说

JDK是java开发工具包(java代码包含所有的需求工具)

JRE是java运行环境(运行java代码的)

JVM是java虚拟机(所有的java代码是由java虚拟机帮助用户运行的)

三者关系图如下

 下面是详细介绍

JDK:

Java Developement Kit Java开发工具包 ,提供给所有Java开发人员使用的工具包,如果要开发Java程序,必须要安装JDK

JRE:

Java Runtime Ele Java运行时环境,运行Java程序需要的内容,将来如果只要运行一个Java程序,只要有JRE就可以了

JVM:

Java Virtual Machine Java虚拟机 : 所有的Java代码都是由Java虚拟机(JVM)帮助我们运行的

JVM三大任务 :

1,加载 :JVM负责把字节码文件(.class)加载到内存中

2,验证 :JVM对字节码文件进行验证,验证代码是否符合规范

3,执行:验证通过后,将代码执行出来

Java的跨平台

平台,指的是不同的操作系统

跨平台,就是指同一个Java程序,可以在不用的操作系统上运行

跨屏台实现原理 :

通过不同操作系统的JVM,java程序能完成跨平台的操作,在不同的操作系统上运行同一份代码程序。

一个简单的java程序的编写

public class HelloWorld{

2, public static void main(String[] args){

3, System.out.println("HelloWorld!!");

}

}

public class HelloWorld{
	public static void main(String[] args){
		System.out.println("HelloWorld!!");
	}
}

关于上面的代码

public 表示一个修饰符,公共的意思,表示任意的位置都可以访问这个类

class 表示类的意思,表示这个Java文件是一个普通的类文件

HelloWorld 表示类的名称,用来标识这个类的,类名一般用大写开头

大括号 :这个类中代码的范围

public static void main(String[] args){} :main方法,固定写法,是程序的入口,所有的Java程序启动,都是从这个main开始

System.out.println() : 向控制台输出指定的内容,括号里面写什么,控制台就会输出什么

注意:一个java程序中必须包含main方法,main方法是java程序运行的入口

Java常用命令:java javac

javac :用来编译指定的.java文件

编译成功后会自动生成.class文件(字节码文件)

java : 用来运行编译好的类文件

如果编译成功后,即可通过java命令来运行该程序

运行方法:在编写好的.java文件程序下输入cmd进入命令控制台,输入上面的命令进行编译与运行

Java注释

使用        //                                       注释单行

使用      /* 需要注释的内容 */           注释多行

变量的定义、变量的命名规则

取名规则:遵循标识符的命名规范

标识符 :标识符指的是Java中,类、方法、变量取名的一些规范名称

规范: 标识符有 数字、字母、下划线、$ 组成,不能以数字开头,不能和关键字同名

举例: 123abc 错误

正确 _abc123 ,abc_123 , $abc

变量名的取名 :

遵循标识符的命名规范的基础上,一般采用 小驼峰式 命名,首字母小写,后面的每个单词的首字母大写

定义的标识符最好见名知意

举例: userName ,productName, productId

类名的取名 :

遵循标识符的命名规范的基础上,采用 大驼峰式 的命名,首字母大写,后面的每个单词的首字母大写

举例 : class User{} class Person{} class Product{}

方法名的取名 :

遵循标识符的命名规范的基础上,一般采用 小驼峰式 命名,首字母小写,后面的每个单词的首字母大写

尽量要遵循,望文生义

标识符的名称,不能和关键字同名

Java对大小写敏感,关键字大写是允许作为标识符名的

常量

常量指的是在程序运行过程中,不会改变的量

分类如下 :

整数常量、 字符串常量、字符常量 、小数常量、布尔常量、空常量

 代码案例如下

public class DemoVariable01{
	public static void main(String[] args){
		//编写常量
		//整数常量
		System.out.println(10);  
		System.out.println(-10);
		//字符串常量,写在一对双引号中的内容
		System.out.println("hello");
		System.out.println("123");
		//浮点数常量,也就是小数值
		System.out.println(3.14);
		//字符常量,用单引号引起来的内容
		//单引号中,有且仅有一个字符
		System.out.println('a');
		//System.out.println('ab');
		System.out.println('中');
		//布尔常量  true或者flase
		System.out.println(true);
		System.out.println(false);
		//空常量   null,不能直接用来输出打印
		//System.out.println(null);
	}
}

基本数据类型、数据类型的存储空间

数据类型 : 用来表示Java语言中使用的数据的方式

分类 : 基本数据类型 和 引用数据类型

基本数据类型:

四类八种:

整数类 : byte 、short 、int 、 long

浮点数类 :float 、double

字符类 : char

布尔类 :boolean

image.png

Java中的数据类型,首位都表示符号位,所以取值范围都是位数-1之后做计算

浮点数类型转二进制的方式 :以40.375为例

1,先求整数部分 40 的二进制 ==> 0010 1000

2,求小数部分0.375的二进制 ,小数求二进制的方式是, 小数部分 乘 2 ,满1取1,不满1取0

0.375 * 2 = 0.75 => 0

0.75 * 2 = 1.5 => 1

0.5 * 2 = 1 => 1

0.375的二进制结果为 : 011

40.375 组合后的二进制值为 : 0010 1000 . 011

3,小数点左移,左移到最高位的1后面

0010 1000 . 011 ==> 001.0 1000 011

移动的位数+ 127 ==> 5 + 127 = 132 =>

4,计算最终的二进制值

符号位 + 132的二进制(移动后数值的二进制) + 小数点后的二进制 后补0

0 + 1000 0100 + 0 1000 011 0000 0000 0000 0000

5,测试结果

public static void main(String[] args) {
         int i = 0b01000010001000011000000000000000;
        System.out.println(Float.intBitsToFloat(i));
    }

注意事项 :

1,整数类型,默认是int类型

2,float类型和int类型的字节相同,位数也相同,但是int的精度更高,

float类型的划分是 1个符号位、8个指数位、23个尾数位,它的精度是23位,int就是31位

float类型的取值范围更大

3,double类型的划分是 1个符号位 11个指数位 52个 尾数位 ,比long类的范围大,精度比long类型低

4,浮点数类型,默认是double类型

变量

变量 的概念 : 在程序的运行过程中,可以改变的量,本质是 内存中开辟的一块空间

变量的声明:

语法格式 : 数据类型 变量名 = 值;

变量声明注意事项 :

1,变量不可以重复定义,也就是变量名不能重复,值可以被改变

2,float类型和long类型变量,后面需要加上后缀 ,float 加f或者F ,long类型加L

3,byte类型和short类型变量声明的时候,它们的值不能超过它们的范围

4,没有赋值的变量,不能被使用,必须要赋值之后才能被调用

5,变量的使用,不能超过它的作用域

作用域:就是变量生效的范围,也就是它所在的那个大括号的范围

变量的其他声明方式 :

方式1:

数据类型 变量1,变量2,变量3;

变量1 = 值; 变量2 = 值; 变量3 = 值;

方式2:

数据类型 变量1 = 值,变量2= 值,变量3 = 值;

注意:

1.变量不可以重复定义,值可以被改变(变量名不可重复)
2.float类型和null类型使用时需要加入后缀
3.float使用时要加入'f'或者'F'
Long类型使用时要加'L'或者'l'
byte和short在声明赋值的时候值不可以超过它们的范围
4.声明变量时可以不赋值,但是如果要使用变量必须要赋值
5.变量的使用不能超过它的作用域
作用域是指变量生效的范围,也就是该变量声明时所在的大括号里。
声明在哪个大括号里,作用域就是多大

代码演示案例如下

/**
	变量的声明及使用
**/
public class DemoVariable02{
	
	public static void main(String[] args){
		//声明变量
		//声明整数类型
		//语法 :  数据类型   变量名   =  值;
		byte b1 = 100; 
		//byte b2 = 200;   //声明的数值,不能超过数据类型的范围
		System.out.println(b1);
		//System.out.println(b2);
		
		short s1 = 200;
		System.out.println(s1);
		
		//int类型的声明
		//int b1 = 300;  //不可以声明同名的变量
		b1 = 110;
		System.out.println(b1);
		
		int i = 100;
		System.out.println(i);
		
		//long类型
		long l = 1000L;
		System.out.println(l);
		
		//float类型
		float f1 = 3.45F;
		System.out.println(f1);
		
		//double类型
		double  d1 = 2.58;
		System.out.println(d1);
		
		//字符类型
		char ch = 'A';
		System.out.println(ch);
		
		//布尔类型,只有两个值,true或者false
		boolean  b2 = true;
		System.out.println(b2);
		
		//声明变量
		int number01 ;
		number01 = 100;
		System.out.println(number01); //想使用变量必须先赋值
		
		{
			int number02 = 200;
			System.out.println(number02);
		}
		//超过作用域范围,无法调用
		//System.out.println(number02);
		
		//声明多个变量
		int x,y,z;
		x = 100;
		y=200;
		z=300;
		int x1 = 100, y1 = 200,z1 = 300;
		
		System.out.println(x);
		System.out.println(y);
		System.out.println(z);
		System.out.println(x1);
		System.out.println(y1);
		System.out.println(z1);
	}
	
	
	
}

小练习:定义声明两个变量,a=10,b=20,并把这两个值进行交换

要求输出语句字格式:符串拼接+两值交换前后的值

public class ExChange{
    public static void main(String[] args){
        int a = 10;
        int b = 20;
        int temp;
        System.out.println("交换前a的值是"+a+','+"b的值是"+b);    
        
        temp=a;
        a=b;
        b=temp;
        System.out.println("交换后a的值是"+a+','+"b的值是"+b);        
    }
}

类型转换(大类型&小类型、int&char的转换)

大类型和小类型:大小类型的区分即是他们的取值范围的大小

(可以理解为两个大小不同的水杯互相向对方完成装水的操作,小水杯的水装进大水杯,水不会溢出,但是大水杯向小水杯装水,如果大水杯里的水过多则会出现水溢出现象)

基本数据类型范围从小到大的排列顺序如下

byte  short  int  long  float  double

大小数据类型的转换:

小类型->大类型 : 隐式的数据转换,一定是安全的

大类型 -> 小类型 : 显示的数据类型转换

语法: 小类型 = (小类型) 大类型值;

public class DemoVariable04{
	
	public static void main(String[] args){
		//隐式的数据类型转换,小类型 -> 大类型
		
		byte b = 100;
		int i = b;
		System.out.println(i);
		
		//小类型向大类型转换的时候,会产生精度丢失问题
		float f1 = 2.58F;
		double d1 = f1; 		// 2.5799999237060547
		System.out.println(d1);
		
		int num = 1234;
		float f2 = num;
		System.out.println(f2);
		
		//byte类型或者short类型,如果做运算,会被提升类型为int,结果需要做强制转换
		byte b1 = 50;
		byte b2 = 50;
		int b3 = b1 + b2;  //byte + byte =>  int + int
		byte b4 = (byte)(b1 + b2);
		System.out.println(b3); 
		System.out.println(b4); 
		
		
		//显示的数据类型转换,  大 -> 小
		
		int num01 = 100;
		byte num02 = (byte)num01;
		System.out.println(num02);
		//大类型的值,转为小类型,需要强制转换,
		//如果超过了小类型的范围,可以转换成功,但是最终的结果会发生改变
		int num03 = 200;
		byte num04 = (byte)num03;
		System.out.println(num04);  //-56
		
		
		double num05 = 2.56;
		float f3 = (float)num05;
		System.out.println(f3);

        int num06 = (int)num05;
		System.out.println(num06); //2
		
		//字符
		char ch01 = 'a';
		System.out.println(ch01 + 1); //98
		
		
		float f4 = (float)2.56;   //通过将double类型 2.56强转为float
		float f5 = 2.56f;   //声明的时候,直接声明为float类型
	}
	
}


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值