Java基础学习2-变量、运算符、开发环境

一、变量

1、变量的本质:

(1)内存中的一个存储空间。
(2)另一种说法:程序运行过程中,其值可以发生改变的量。
(3)每一个变量存储空间是相互独立的。

    通过内存地址取数据:
               1. 十六进制的数,不好记 。
               2. 内存地址是随机分配的

2、 三大要素

1.)变量名:内存空间的名称。作用相当于内存地址。快速的找到内存空间,从而取出数据。
2.)变量值:其中存储的数据。其值可以发生变化。
3.)变量类型:存储的数据的类型。向内存申请空间。不同类型的数据,分配到的内存空间大小不一。

数据类型:
	基本数据类型(8)
		数值:
		  整数:
			byte  1个字节  8bit   -128 ~127   
			short 2个字节  16bit  -2^15~2^15-1   -32768~32767
			int   4个字节  32bit  -2^31~2^31-1   -2,147,483,648~2,147,483,647
			long  8个字节  64bit  -2^63~2^63-1
		  小数:
			float  4个字节  指数占8位
			double 8个字节  指数占11位	
		字符:存储单个字符  ‘a’'0'  '#' '男' ‘ ’
			char  2个字节   16bit  0-2^16-1   0-65535
			         	'A'----65 
			         	'a'----97 
				        '0'----48
			可以运算的,可以比较的    ‘a’~ 'z'  'A'+32
	 	布尔:
			boolean  存储真或者假 true false
	引用数据类型
		字符串  String  存储0个或多个字符  “a”“”"abc"   "0123"
	选择数据类型:
		是否会参与运算?
		年龄   酸奶的价格3.5    性别‘男’  新闻详情   是否登录成功
		身份证号:String   电话号码:String  密码:字符串

实际演示:

public class Demo01{
    
    
	public static void main(String[] args){
    
    
		byte b=3;//byte [-128~127]
		short s=-32763; 
		int a=2147483647;//过大的整数
		
		long ll=2147483647;//过大的整数: 2147483648

		float f=2147483648f;
		double d=2147483648L;

		//int -->byte,short 大字节-->小字节  如果数据无损失,就正常编译
		//int --->long   如果在int范围之内,正常编译,如果超过int范围,需要在数字末尾添上L
		//byte<short  char<int<long--->float--->double  正常编译的
		//自动类型转换  :1、数据类型要兼容  2、小转大

		char c='a';//  97
		int ca=c;
		System.out.println(ca);

		//------------------------------------
		int num=2147483647;
		int num2=1;
		int num3=num+num2;      //整型溢出
		System.out.println(num3);

		byte bb=3+7;
		byte b1=127;
		byte b2=(byte)(b1+1);     //从int转换到byte可能会有损失
		System.out.println(b2);
		short s1=23;
		//short s2=s1-2;

		//变量之间的运算,再赋值,数据有可能会有损失,在byte,short时是会编译出错的,int编译正常,运行有误
		//强制类型转换 :1、数据类型要兼容  2、大转小
			//有数据损失的风险,所以要求程序强制编码  :(转换的类型)
		double dd2=3.5;
		int n=(int)dd2;
		System.out.println(n);
		
		int n1=23;
		double dd3=n1;
		int n2=(int)dd3;
		
		double dd4=n1+3.5;//表达式的结果 其实是表达式中范围最大的那种类型

		/*char c='a';//  97
		int ca=c;
		System.out.println(ca);*/
		int ca2=ca-32;
		char cd=(char)ca2;
		System.out.println(cd);

	
		int nnn=23;
		nnn+=2;   //nnn=nnn+2;
		System.out.println(nnn);
	
		//int sum+=23; //int sum; sum=sum+23;
		
		byte b5=12;
		//b=b+12;
		b5+=12;//编译正常
	}

在这里插入图片描述

(1)变量名:

1.)命名规则:
1. 只能由字母、数字、下划线、$组成,不能数字开头。
2. 不能使用关键字 class true等。

3. 小驼峰法:除第一个单词外,每个单词首字母大写 stuName stuJavaScore
4. 见名知意 age name
5. 区分大小写 name Name

(2)变量的定义和使用:

  1. 声明变量:向内存申请空间
    语法:数据类型 变量名;

  2. 赋值 :变量名=值;

     前两部可以合二为一: 数据类型  变量名=值;
    
  3. 使用 :通过变量名访问变量值

     字面常量:整数,默认是int    小数,默认是double
    

//练习: 手机信息 :品牌:华为 价格:2999.9元 是否打折中:true, 颜色:白。

public class phone{
    
    
    public static void main(String[] args){
    
    
        String model="华为";
        char color='白';
        double price=2999.9;
        boolean zhe=true;
        System.out.println("手机信息:"+"\n品牌:"+model);
        System.out.println("价格:"+price+"元");
        System.out.println("是否打折:"+zhe+"\n颜色:"+color);
    }
}

在这里插入图片描述

二、运算符

1、赋值运算符

    变量名=表达式;
	符合赋值运算符  += -= *=  /=

2、算术运算符

	+ - * /(整除) %(求余)
	++:   ++在后  先用再加
	       ++在前  先加再用
	-- :  与++类似

3、关系运算符

	>  <  ==   >=   <=   !=
  char类型是可以比较的:
      判断一个字符是不是大些字母?
  浮点型在内存存储可能是不精确,所以不适合==
      不能连写 a>b >c
	  ==等于
  关系表达式 的结果都是boolean类型

4、逻辑运算符

	连接多个boolean表达式
	逻辑与  && :同真为真,遇假则假
	逻辑或 ||  :有真则真,同假则假
	逻辑非 !:  取反

	&&和||有短路功能  

    优先级:!>算术运算符>关系运算符>&&、||>赋值运算符
	先运算,后比较,再连接,最后赋值
	推荐使用(),显式提升优先级。   

5、位运算符

	以二进制的形式运算
	>> 右移  3>>1  -----1      相当于除法
	<< 左移  3<<1  -----6      相当于乘法
	&   3&5
	     判断奇偶数  :&1     获取二进制最末位数字  
	     逻辑运算:连接两个条件,同真为真,遇假则假
		和逻辑与&& 区别,就是不支持短路	 
	|   3|5  7
	    对于任意一个数字,|1,可以把末位置成1
	    逻辑运算:有真则真,同假则假
		和逻辑与|| 区别,就是不支持短路
	^ 异或  不同为1,相同为0	
	   3^5  011 101  110--6
		6^5  110  ^ 101   011--3
	 一个数,对另外一个数进行两次异或运算,就能得到他本身。----加密,解密

三、练习

1、拆分四位数。

public class fj{
    
    
    public static void main(String[] args){
    
    
      int n=1234;
      int g=n%10;
      int s=n%100/10;
      int b=n/100%10;
      int q=n/1000;
      System.out.println("个位:"+g+"、十位:"+s+"、百位:"+b+"、千位:"+q);
    }
}

在这里插入图片描述2、今天周日(7),12天后周几

import java.util.Scanner;
public class week {
    
    
	public static void main(String[] args) {
    
    
		System.out.println("请输入今天是星期几:");
		Scanner sc = new Scanner (System.in);
		int weeks = sc.nextInt();
		System.out.println("请输入所需多少天后是周几的天数:");
		int day = sc.nextInt();
		if((day + weeks)>=7) {
    
    
			System.out.println(day + "天后是周" +(day + weeks) % 7 );
		}
		else {
    
    
			System.out.println(day + "天后是周" + (day+weeks));
		}
	}
}

在这里插入图片描述

#从控制台(键盘)获取数据	
java.lang包下的内容是不需要单独导入的。
先导包  java.util.Scanner;
Scanner   input=new Scanner(System.in);
接收一个整数nextInt()
接收一个浮点数nextDouble();
接收一个字符串next()
接收boolean nextBoolean()
但是,没有char类型  c
 ==  基本数据类型之间,比较的数值 
 == 引用数据类型之间,比较的地址
String 类型的数据,比较值相等  变量.equals(变量)

四、开发环境

 文本编辑器 : vscode、 notepad++ 、editplu、s sublime
 IDE:继承开发环境  编写,编译,运行
 Eclipse(免费)  MyEclipse(收费) IDEA(收费)	

在官网下载安装与自己jdk所适应的Eclipse版本

  1. 创建一个项目
  2. src–创建类–编写代码
  3. Ctrl+S–自动编译
  4. 运行 Ctrl+F11
 字体放大:Window-Preferences-输入font---Basic--Text     font

猜你喜欢

转载自blog.csdn.net/qq_46645079/article/details/117277473