首页 > 编程语言 >JavaSE【2】-基础语法

JavaSE【2】-基础语法

时间:2023-05-04 18:23:01浏览次数:40  
标签:int 基础 System 语法 println JavaSE true public out

JavaSE【2】-基础语法

一、Java数据类型

在Java语言中将所有的数据类型划分为两大类: 八大基本数据类型 复合引用类型

八大基本数据类型:

    |------数值型
    
           |-整数类型:  byte(字节)  、  short(短整型)  、  int(整型)  、long(长整型)
               
           |-浮点类型:  float(单精度) 、 double(双精度)
           
    |------字符型    char
    
    |------布尔型    boolean (取值 : true | false)
           
          
复合引用类型:所有的类、数组、枚举、接口等都属于复合引用类型(除了8大基本数据类型之外的都是复合引用类型);                

提示!

整数类型

共有4种类型,各种类型的表数范围是不同的,所占的内存空间也是不同的。所以我们在使用的过程中一定是满足需要(1、能够表达我们想要的数据 2、同时能够进行空间的节约)就可以的。

long a = 4L;

所有的整数的常量值,系统默认的都是标准的32位的int类型;如果我们想表示出一个标准的long类型,需要在后面添加L或者l。

浮点类型

共有2种类型,各种类型的表数范围是不同的,所占的内存空间也是不同的。在使用的过程中需要进行平衡。float类型可以保留到小数点后7位。double类型可以保留到小数点后16位。精确有效位是不同的。

字符型:在Java中使用的是Unicode编码,占据的是2个字节。使用的是‘’单引号来进行定义的,但是需要注意的是其中有一部分是属于特殊字符,表达的就是特殊的含义。

	    //常规的使用情况
		char  c1 = '1';		
		char  c2 = '中';		
		char  c3 = 'a';		
		//java中的特殊字符
		char   c4 = '\t';   //表示的是制表符
		char   c5 = '\n';
		
        char   x = 'a';
		System.out.println(x); //结果: a
		System.out.println((int)x);// 97   按照的是ASCII码来进行处理的;

备注!

   每一个字符都会对应唯一的一个ASCII码的值,它是int的一个子集,并且是没有负数的;具体的表数范围是:
   0~65535区间。 a -- 97   b -- 98  ,  A--65

特别提示!

所有的整数常量默认的都是int类型;

long x = 10L;

所有的小数常量默认的都是double类型;

float y = 2.5F;

二、数据类型转换

在8种基本数据类型之中,有如下这几种是直接存在数据类型由低到高的顺序的

byte < short (char) < int < long < float < double

低级类型------------------------------------> 高级类型

在Java语言中数据类型的转换有2种形式:

自动转换

当多种数据类型在一起进行混合运算的时候,低级类型直接会被提升为高级类型来进行处理;
	    byte    x = 10;	
		int     y = 20;
		//x + y的时候,就进行了类型的自动转换(byte 自动转换为int类型了)
	    int 	sum = x + y;
	    
	    -------------------------------
	    long  a = 23L;
	    float  b = 2.5F;
	    float  result = a+b; //内部将long类型提升为float类型
	   
强制转换

当高级类型需要转换为低级类型的时候,我们就必须要使用强制转换这种方式来操作,具体的写法是:

目标类型   变量名称 = (目标类型)(结果数据);

eg:
       //如果我最终需要将x+y定义为最终的byte类型,那么该如何操作呢?
	   //需要使用强制转换
	   byte    x = 126;	
	   int     y = 20;
	   byte  sum1 = (byte)(x+y); //结果:-110         解析过程: 146-256 = -110
	   System.out.println(sum1);

特别的提示!
以后在开发的过程中,我们尽量保证数据不变的情况下,发生类型的转换;

三、变量和常量

3.1、变量的定义

所谓的变量,就是一个可以变化的量,表示的是在计算机中申请一块内存空间,用于数据的存储。通过变量的这种形式可以对内存空间中数据进行不断的修改(重新赋值)。

3.2、变量的分类

在Java语言中变量可以分为2类:

第一类:
   成员变量(全局变量):就是定义在方法体之外,类体之中的位置;
   
第二类:
   局部变量:可以定义在方法或者语句块中,为方法或者是语句块提供局部性的服务,随着方法的执行而创建,执行完毕
   后就销毁,生命周期比较短。能够使用的修饰符只能是final ,其余的都不支持;

提示!

目前讲解和使用的都是成员变量;

3.2、成员变量定义的语法格式

修饰符  数据类型   变量名称 [ = 值];
解析:

1、修饰符:public   static ;

2、数据类型:Java中所有的数据类型均可使用;

3、变量名称:符合标识符的定义规则即可(建议:最好有内涵);

4、针对成员变量系统会自动默认初始化值,所以可以不进行手动赋值;
public class Demo02 {
	
	//定义第一个成员变量
	public   static   String  name1="admin";
	
	//定义第二个成员变量
	public   static   String  name2; //系统会自动初始化一个值,这个值就是这种类型的默认值 null	

	//入口程序(主方法)
	public static void main(String[] args) {
		
		//使用name1这个变量
		System.out.println(name1);
		
		//使用name2这个变量
		System.out.println(name2);//null

	}

}

提示!

1、注意成员变量的定义语法格式(包括位置);

2、注意成员变量各种类型的默认初始化值;

byte:0 short:0 int:0 long:0L float:0.0F double:0.0 char:'\u0000' boolean:false

3、所有的复合引用类型的默认值都是null;

3.3、局部变量定义的语法格式

public class Demo03 {
	
	public static void main(String[] args) {
          //定义的局部变量
	      String  name = "admin";
         
          int  age = 30;
         
          //注意!局部变量不能使用修饰符,而且必须要手动赋值,只能是在局部范围内进行使用
          //String  name1; //是错误的
           
	}
}
public class Demo03 {
	//定义的一个成员变量
	public  static  int  age = 10;	
	
	public static void main(String[] args) {
		
		System.out.println(age);  // 10
		age = 20;
		System.out.println(age); // 20
		age = 30;
		System.out.println(age);  //30
		age = 'a';
		System.out.println(age);  //97
		
		//age = "admin";  这就是错误的
		
		//观察发现:同样是一个age的变量,在程序执行期间的不同阶段,其值是不同的;
		//在计算机中的同一块内存中,可以保存一些不同的值,只要是类型兼容即可;		
	}
}

3.4、常量的定义

所谓的常量,就是一个值不能变化的变量,在声明和定义的时候必须要手动赋值,并且需要使用final修饰符来进行限制;

3.5、常量的定义语法

修饰符 final  数据类型  常量名称 = 值;

说明:

修饰符:public static + final

数据类型:所有的Java数据类型都是可以的;

常量名称:都是使用大写;

=值 : 常量必须要手动赋值;

/**
 * 常量的讲解和使用
 * @author Administrator
 */
public class Demo04 {
	
	//定义一个常量
	public  static  final   String   NAME = "admin";
	
	public static void main(String[] args) {
		System.out.println(NAME);	
		//NAME = "guest";  针对常量就不能重新进行赋值操作		
	}
}

四、运算符

在Java中所有的运算符被划分为以下几类:

4.1、算术运算符

+    -    *    /    %    ++   --
/**
 * 针对 / 除法的使用
 * @author Administrator
 */
public class Demo05 {
	
	public static void main(String[] args) {
		
		//局部变量
		int    x = 10;
		
		int    y = 3;
		
		int  result = x/y;
		
		System.out.println(result);  //3
		
		double   z = 10.0;
		
		double result1 = z/y;
		
		System.out.println(result1);  //3.3333333333333335
		
		//注意!所有的浮点型表示的都是一个近似值
		
		double   a = 10.0;
		
		double  r1 = a/0;  // 0.0 
		
		System.out.println(r1);  // Infinity  正无穷(无穷大)
		
		
		double  b = -10.0;
		
		double  r2 = b/0;
		
		System.out.println(r2); // -Infinity  负无穷(无穷小)
		
		double  result2 = r1 + r2;
		
		System.out.println(result2);     //  NaN  非数字
	}

}
//   % 求模  (求余数)
public class Demo06 {
	public static void main(String[] args) {
		int   a = 10;
		int  b = 3;
		int result = a%b;
		System.out.println(result);
	}
}

++ 的使用

	public static void main(String[] args) {
		int  a = 10;
		System.out.println(a);  // 10
		a++; //将a自身+1;
		System.out.println(a);  //  11
		
		//a++ : 首先将a的值带入运算,再自身+1
		int  result = a++;
		System.out.println(result);  // 11 
		System.out.println(a);  // 12
		
		//++a : 首先自身+1,再带入运算
		result = ++a;
		System.out.println(result); // 13 	
	}

4.2、逻辑运算符

&&    ||    !
	//逻辑运算符
	public static void main(String[] args) {
		
		//&&的使用情况
		System.out.println(true&&true);   //true
		System.out.println(true&&true&&true);   //true
		System.out.println(true&&true&&false);   //false
		//&&表示的是:一些列的表达式结果,只要有一个为false,则整体的结果为false;
		System.out.println(true&&false&&true);   //false
		//注意!当程序检查到第二个false的时候,就可以给出整个表达式的结果了,后续的结果不做参考,所以&&表示的是“短路版”模式,有利于提高性能;
		int  a = 5;
		int  b = 7;
		int  c = 10;
		System.out.println((a>b)&&((c+b)<a)&&(b>c));  //false
		//注意!以后的复杂程度,主要是取决于表达式的复杂度,但是每个表达式的最终结果必须要是boolean类型才可以;
		
		System.out.println("---------------------------------------------------------");
		
		System.out.println(true||true||true); //true
		System.out.println(true||false||true); //true
		System.out.println(true||false||false); //true
		//提示!只要有一个表达式的结果为true,则整个表达式的最终结果就为true,而且后续的表达式不做任何的检查。有利于提高处理性能;
		System.out.println((a>b)||(a+c)<b||(b-a)>c);  //false
		//注意!以后的复杂程度,主要是取决于表达式的复杂度,但是每个表达式的最终结果必须要是boolean类型才可以;
		
		// !取反(true--false,false - true)
		System.out.println(!true);  //false;
		System.out.println(!(a>b));//true		
	}	

重点提示!

针对&& 和 || 都是基于“短路板”的模式,有利于提高处理的性能;

4.3、赋值运算符

=    +=    -=    *=    /=     %=
//赋值运算符及扩展运算符
	public static void main(String[] args) {
		
		int   a = 10;  //将10这个数据值,赋值,给a这个int类型的变量;
		a+=5;  //这个表达式的计算过程可以理解为:  a = a+5 , 但是其内涵是不同的;
		System.out.println(a);  // 15
		
		
		byte   x = 4;
		//x+=5;  这种写法内部已经进行了相应的强制转换处理,并不完全等价于  x = x + 5的写法。
		x = (byte)(x + 5);
		System.out.println(x);  // 9
		
		int   y = 10;
		int  z = 3;
		y%=z;  // y=y%z;
		System.out.println(y); // 1
	}

4.4、比较运算符

>    <    ==      >=     <=   !=  

注意!

以上的这些比较运算符,都是可以用于具有可比性(大小之分)的数据;其中 == 和 != 可以用于boolean类型,其他的则不可以;

4.5、位运算符

位运算符是基于二进制的处理,了解即可;

五、Scanner类

Scanner是Java平台内部提供给我们的一个类(就像我们前面所使用的String一样),主要是用于针对控制台进行数据的录入和扫描,增强程序的互动性,这个类是位于java.util包之下的。

5.1、如何创建

Scanner    sc = new  Scanner(System.in);

5.2、如何使用Scanner

Scanner实现原理:

1638246586542

package com.it.www;

//使用的是java内部提供的Scanner类,这是一个导包的语法
//表示的是告诉我们Scanner这个类的位置
import java.util.Scanner;

public class Demo11 {
	
	public static void main(String[] args) {
		
		//在程序中产生出一个提示信息
		System.out.println("请输入您的姓名:");
		
		//创建出一个扫描器
		Scanner    sc = new  Scanner(System.in);
		
		//扫描数据
		String  name = sc.next();
		
		System.out.println("输出到控制台:"+name);		
	}
}
/**
 * Scanner扫描器的使用
 * @author Administrator
 */
public class Demo12 {
	
	public static void main(String[] args) {
		
		//创建扫描器
		Scanner   sc = new  Scanner  (System.in);
		System.out.println("请输入文本信息:");
		String   text = sc.next();
		System.out.println("请输入数据信息:");
		
		//扫描4种整数类型
		sc.nextByte();
		sc.nextShort();
		sc.nextInt();
		sc.nextLong();
		
		//扫描2种浮点类型
		sc.nextFloat();
		sc.nextDouble();
		
		//扫描boolean类型
		sc.nextBoolean();
		
		//扫描字符('男'  --- next()----"男" ------ "男".charAt(0) ----- '男' )
		char  c = sc.next().charAt(0);
		
		//扫描字符串
		sc.next();
	}

}

六、Math类

6.1、Math的使用

Math类也是Java平台内部为我们提供的一个类,这个类位于java.lang包下,主要负责数学运算方面的处理,比如开平方、正弦、最大值、最小值.....;

	//Math类的使用
	public static void main(String[] args) {
		
		int   x = -10;
		int   y = 2;
		//求绝对值
		int  r1 = Math.abs(x);
		System.out.println(r1);// 10
		
		int  max = Math.max(x, y);
		System.out.println(max);
		
		int  min = Math.min(x, y);
		System.out.println(min);
		
		double  pi = Math.PI;
		System.out.println(pi); // 3.141592653589793
		
		//ran这个随机数的值区间: [0.0 , 1.0)
		double ran = Math.random();
		System.out.println(ran);  //0.9801505916722769
	                              //0.9545355138678769
		
	}

6.2、Scanner 和 Math的总结

1、这2个类都是由Java平台内部提供的类;

2、Scanner类是位于java.util包下,Math类是位于java.lang包下,我们发现在使用的过程中,Math不需要我们进
   行导包的操作(因为JVM默认的已经将java.lang包进行了导入)。
   
3、Scanner的使用需要创建对象,而Math类没有创建对象,是直接进行使用的;
     --原因:Scanner类中的方法都是非静态的方法,所以必须要先创建对象,否则无法访问和使用;
            Math类中都是静态的方法,而静态的方法是不需要我们创建对象的,可以通过类名直接进行使用;

提示!

针对Scanner类中的方法 和 Math类中的方法,我们可以通过源码来进行观察!

重点去区分静态和非静态方法的含义和使用方式。

七、方法的定义和调用

7.1、何为方法

【Java中的类 = 属性 +  方法 】 永远都是成立的;
一个类描述的是某一类事物,而这个事物所具备的特点就是属性,这个事物所具备的行为功能就是我们所说的“方法”。
方法就是针对具体的某一个功能进行的处理,由相应的Java程序代码所构成。

7.2、如何定义方法

修饰符 [static]  方法返回类型|void   方法名称([参数1,参数2,......]){
    //方法主体部分(方法体)
} 

说明提示!

1、修饰符: public

2、返回类型:可以是Java中的任意数据类型

3、void :表示没有返回值

4、方法名称:符合标识符的规范即可(推荐:动词+名词形式)

5、参数列表:数据类型 + 变量名称 所构成,可以是多个

6、{ }:其中编写的是Java程序代码

Demo01.java 【定义的全部都是静态方法】

//自定义方法-1  (特点 : 1、属于静态方法     2、无返回的方法  3、没有参数列表的方法)
  public  static   void   method01(){
		int   a = 20;
		int  b = 15;
		//求出最大值
		int   max_value = Math.max(a, b);
		//输出最大值
		System.out.println(max_value);
   }

//自定义方法-2(特点:1、属于静态方法     2、有返回值的方法    3、没有参数列表)
	public   static   int   method02(){
		int   a = 20;
		int   b = 15;
		//求出最大值
		int   max_value = Math.max(a, b);
		return  max_value;
	}
	/**
	 * 注意!
	 * 1、有返回值的方法必须要使用return关键字;
	 * 2、return后面的变量或者值,必须要兼容方法定义的返回类型;
	 * 3、有返回值的方法,最终将值返回到方法的调用处(哪里调用就返回给哪里);
	 */


    //自定义方法-3 (特点: 1、属于静态方法   2、有返回值的方法    3、有参数列表)
	public   static   int   method03(int  a, int  b){
		int  max = Math.max(a, b);
		return max;
	}
	/**
	*参数列表就是为这个方法所提供的原材料,可以是多个不同类型的参数;
	*/

Demo02.java 【定义的全部都是非静态的方法】

	//自定义方法-1 (特点:1、属于非静态的方法     2、无返回值    3、无参数列表)
	public   void   method01(){
		int  a = 30;
		int  b = 20;
		int max = Math.max(a, b);
		System.out.println(max);
	}
	
	//自定义方法-2 (特点:1、属于非静态的方法     2、有返回值    3、无参数列表)
	public   int   method02(){
		int  a = 30;
		int  b = 20;
		int max = Math.max(a, b);
		return max;
	}
	
	//自定义方法-3 (特点:1、属于非静态的方法     2、有返回值    3、有参数列表)
	public   int   method03(int  a,  int  b){
		int max = Math.max(a, b);
		return max;
	}

7.3、方法的分类

在Java的类中所有的方法被分为2大类:

a、静态方法:
      修饰符中必须要含有static关键字,在调用的时候可以直接通过【类名.方法名称】进行调用;
b、非静态方法:
      修饰符中没有static关键字,在调用的时候必须要首先创建出这个方法所在类的对象,再通过【对象.方法名称】 
      进行调用;

7.4、方法的调用

针对Demo01类中的所有的静态方法的调用:

        //调用方法-1
		//method01();
		//需求:  在外部通过方法得到最大值20,然后再 +10,最终进行输出
		//调用方法-2
	    /*	
	    int result  = method02();
		//result = result+10;
		result+=10;
		System.out.println(result);*/
		
		//调用方法-3
		//在调用的时候,给出的是实际的参数(简称为“实参”)
		/*int  result = method03(120, 39);
		System.out.println(result);*/
		
		/**
		 * 以上针对下面的3个静态方法进行调用的时候,我们直接通过方法名称来实现调用的。
		 * 也可以通过【类名.方法名称】进行调用
		 * 所有的静态的方法也可以通过创建对象,再使用【对象.方法名称】,但是我们一般不这么做(因为创建对
		 * 象需要进行性能的消耗)。
		 */	 
		Demo01.method01();
		int  result = Demo01.method02();
		System.out.println(result);
		result = Demo01.method03(50,100);
		System.out.println(result);
		
		/**
		 * 由于这些静态的方法都是位于Demo01这个类中的,并且是在Demo01类中的main方法中进行调用的,所以
		   可以省略Demo01这个类名;
		 * 所以:如果以后我们在调用方法的时候跨类了,那么就必须要写类名。
		 */

针对Demo02类中的所有的非静态的方法的调用:

        //想要调用Demo02这个类中的非静态方法,首先需要创建Demo02这个类的对象
		Demo02   demo = new  Demo02();
		//通过demo对象进行方法的调用
		//demo.method01();
		
		/*int result = demo.method02();
		System.out.println(result);*/

		//传入的是实际参数40和60
		int  result = demo.method03(40, 60);
		System.out.println(result);

标签:int,基础,System,语法,println,JavaSE,true,public,out
From: https://www.cnblogs.com/hardrockstudy/p/17372139.html

相关文章

  • JavaSE【1】-环境搭建
    JavaSE【1】-环境搭建一、Java开发环境的搭建所谓的Java开发环境的搭建,其实就是构建出一套可以编译和执行Java应用程序的软件工具;在Java开发环境的搭建中需要安装JDK的软件工具(Java开发工具包);1.1、搭建的步骤1、下载JDK安装包(要求是不低于1.7的版本);2、安装JDK软件(非C盘即可......
  • 想了解JavaScript基础?这篇文章足够了!
    本人无意看到的一篇文章,觉得写的很全面,简单概括了Javascript的一些知识,现分享如下:原文地址:http://www.ppmy.cn/news/7295.html更多详细内容,请微信搜索“前端爱好者“,戳我查看。一、JavaScript的介绍JavaScript是一种运行在客户端的脚本语言,作为web标准的行为层,最初出现......
  • 【pandas基础】--数据读取
    数据读取是第一步,只有成功加载数据之后,后续的操作才有可能。pandas可以读取和导入各种数据格式的数据,如CSV,Excel,JSON,SQL,HTML等,不需要手动编写复杂的读取代码。1.各类数据源pandas提供了导入各类常用文件格式数据的接口,这里介绍3种最常用的加载数据的接口。1.1从CSV文件读......
  • PHP基础--mysqli的事务处理
    <?php//在命令行中:默认创建的表类型为MyISAM表类型,是不支持事务的//在命令行中建表时添加type=InnoDB,默认自动提交事务autocommit,不能回滚//创建连接对象$mysqlConn=newmysqli("localhost","root","root","test");if($error=$mysqli->connect_error){die("......
  • 数据库基础问题?
    数据库是指按照一定的数据结构对大量数据进行存储和管理的系统。数据库系统是一个软件系统,用来管理和组织数据。它可以让用户方便地访问和处理数据,从而提高数据的使用效率和准确性。数据库系统的基础包括以下几个方面:数据库设计:数据库设计是指根据业务需求和数据特点,设计出适合......
  • 数据库基础问题?
    数据库是指按照一定的数据结构对大量数据进行存储和管理的系统。数据库系统是一个软件系统,用来管理和组织数据。它可以让用户方便地访问和处理数据,从而提高数据的使用效率和准确性。数据库系统的基础包括以下几个方面:数据库设计:数据库设计是指根据业务需求和数据特点,设计出适合业务......
  • golang基础知识
    一golang基础知识Go(又称Golang)是Google的RobertGriesemer,RobPike及KenThompson开发的一种计算机编程语言语言。设计初衷Go语言是谷歌推出的一种的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(RobPike)说:我们之所以开发......
  • Python爬虫需要哪些基础
    Python爬虫是指使用Python语言编写程序,自动化地访问Web页面并抓取其中的信息。以下是Python爬虫的基础知识:爬虫的工作原理:爬虫程序通过网络请求获取Web页面的HTML源码,然后使用正则表达式或解析器提取所需要的信息。常用的爬虫库:Python中常用的爬虫库包括requests、BeautifulSoup......
  • mysql使用基础
    MYSQL学习,冲冲冲数据库学习的重要性是:各个网站媒体依赖的数据存储在数据库内。数据库:用来存储和管理数据的技术。在研发岗内需要使用,在面试题内出现--重要性。学习sql语言,使用mysql数据库,学习内容包括:事务,存储引擎,索引,sql优化,锁,日志,主从复制,读写分离,分库分表。基础篇:mysql概......
  • jvm基础
     jvm中两个线程:1、守护线程:jvm自己使用的线程,比如垃圾回收(GC)就是一个守护线程2、普通线程:一般的java程序线程,只要JVM中有普通线程在执行,那么JVM就不会停止 结束生命周期在如下几种情况下,Java虚拟机将结束生命周期1、执行了System.exit()方法2、程序正常执行结......