1.Java程序+数据类型+运算符

  • Post author:
  • Post category:java


一.Helloworld程序

1.编写java源程序的步骤:

●创建ava的源文件(源文件:就是写ja代码的文件)名称是 HelloWorld, java

●在源文件中定义一个java类…定义类的关键字class

●在类体里面定义一个main方法(主方法),是程序运行的入口

●在mian方法体里面写了一条输出语句

2.运行java程序的步骤

●通过jdk提供的JAVA.exe这个小工具把java源文件编译成字节码文件

●通过jdk提供的java.exe这个小工具来执行前面编译好的字节码文件

3. HelloWorld程序的注意事项

●用 javac.exe对java源文件进行编译的时候,要加上源文件的后缀名 编译命令: javac Helloworld .java

●用java.exe执行字节码文件的时候,不需要加上字节码文件的后缀名 运行命令:java Helloworld



执行命令的过程中是严格区分大小写的!!!

4.执行程序过程中的常见错误

●文件扩展名藏导致译失败+

●cass写 错Class claas

●类格式有问问题,类名和文件名不一致

●类名后面的大括号匹配不正确

●main方法格式错误 pubic static void main(String []args){}

●main方法大括号缺失

●打印语句拼写错误 System.out.printin(“”):

●引号使用错误,使用成中文全角引号

//第一行的第三个单词必须和所在的文件名称完全一样
//public class后面代表定义一个类的名称,类是Java当中所有源代码的基本组织单位
public class Helloworld {
//第二行的内容是固定的写法,代表main方法
//这一行代表程序执行的起点
   public static void main(String[] args){
//第三行代表打印输出语句
   System.out.println("Hello,World")
          }
}

二.基本语法

1.关键字(32 其中两个叫做保留字)

1.1.关键字特点

组成关键字的字母全部小写

1.2关键字注意事项

goto和const作为保留字存在,目前不使用

一般高级的记事本( notepad++),针对关键字有特殊的颜色标记,丰常直观

1.3保留字

在JDK的新版本中可能提升为关键字的特殊字符就叫做保留字

Notepad++演示颜色标记java关键字


注意:Java中的关键字不能被用作方法名或类名

2.标识符

2.1.概述

给类,接口,方法,变量等起名字时使用的字符序列

2.2.组成规则(硬性规则)

①英文大小写字母②数字字符③$和_

2.3.注意事项

☝不能以数字开头

☝不能作为Java中的关键字

☝严格区分大小写

2.4.标识符的常见命名规范

♛包(其实就是文件夹,用于解决相同类名问题,比方说同一个文件夹下不能有两个相同的类)

单级 abc

多级 com.abc

多级现形式: com文件夹下有一个abc文件夹

注意:包名要全部小写,不能大写!大写的话不会报错、但是不入流!

♛类或者接口

一个单词的类 Person(

首字母大写

两个单词的类 Person Test(

每个单词的首字母都要大写)

♛方法和变量

一个单词main(

首字母小写

mainMethod (

第一个单词首字母小写、第二个要大写

)

♛常量

一个单词PI(

全部大写

两个单词 MAX_NUMBER(

全部大写、并且单词和单词之间用下划线隔开

3.注释

3.1.概述

用来解释说明程序的文字

3.2.注释的分类

☝单行注释:格式为 //注释内容

☝多行注释:格式为 /*注释内容*/(多行注释不能嵌套)

☝文件注释:格式为 /**注释内容*/

♛对于单行注释和多行注释,被注释的文字,不会被JVM(java的虚拟机)解释执行

♛对于文档注释,是java特有的注释,其中注释的内容可以被JDK提供的工具javadoc所执行

4.常量

4.1.概述

在程序执行过程中其值不会发生改变的量

4.2.常量分类

☝字面值常量

❤字符串常量 :用双引号(英文的) 括起来的内容(“feicui”)

❤整数常量 :所有整数(12 23)

❤小数常量(浮点数常量): 所有小数 12.34 56.78

❤字符常量 :用单引号括起来的内容 ‘a’,’A’,‘0’

❤布尔常量: 较为特有,只有ture和false

❤空常量: null(数组部分讲解),代表没有任何数据

☝自定义常量

// Const是常量的意思
public class Demo01Const{
  public static void main(String[] ages){
//字符串 
  System.out.println("ABC");
  System.out.println("");//字符串两个双引号中间内容为空
  System.out.println("DEF");
//整数常量
  System.out.println(30);
//浮点数常量
  System.out.println(3.14);
//字符常量
  System.out.println('6');//两个单引号中间必须有且仅有一个字符,没有不行,两个及两个以上也不行
//布尔常量
  System.out.println(ture);
  System.out.println(false);
//空常量,其不能直接打印输出空常量
          }
}





5.数据类型

5.1.分类:

☝基本数据类型:

★整数型:byte short int long

★浮点型:float(单精度) double(双精度)

★字符型:char

★布尔型:boolean

☝引用数据类型:字符串,数组,类,接口,Lambda


注意:

●Java中的默认类型:整数类型是int,如果一定要使用long,需要加上一个后缀FL

浮点类型是double,如果一定要使用float,需要加上一个后缀F

●字符串不是基本类型,而是引用类型

●浮点型可能只是一个近似值,并非精确的值

●数据范围与字节数不一定相关。例如:float数据范围比long广,但是float是4字节,long是8字节

6.变量

6.1.概述

程序运行期间,内容可以发生的量

6.2.创建一个变量并且使用的格式

★数据类型 变量名称;——创建了一个变量

变量名称 = 数据值;——赋值

★数据类型 变量名称 = 数据值;——在创建一个变量的同时,立刻放入指定的数据值

public class Demo02Variable{
  public static void main(String[] args){
     //创建变量
     int num1;
     //向变量中存入一个数据
     num1 = 10;
     System.out.println(num1);
     //改变变量当中本来的数字,变成新的数字
      num1 = 20;
      System.out.println(num1);
      //一步到位的格式
      int num2 = 25;
      System.out.println(num2);
     }
}

6.3.注意事项

▷如果创建多个变量,那么变量之间的名称不可以重复

▷没有进行赋值的变量,不能直接使用

▷变量使用不能超过作用域的范围(作用域:从定义变量的一行开始,一直到直接所属的大括号结束为止)


7.数据类型转换

▷对于float和long类型来说,字母后缀F和L不要丢掉

▷如果使用byte或short类型的变量,那么右侧的数据值不能超过左侧类型的范围

当数据类型不一样时,将会发生数据类型转换

7.1.自动转换(隐式)

◆特点

代码不需要进行特殊处理,自动完成

◆规则

数据范围从小到大

public class Demo01DateType{
    public static void main(String[] args){
       System.out.println(1024);//这是一个整数,默认为int类型
       System.out.println(3.14);//这是一个浮点数,默认为double类型
            
       //左边是long类型,右边默认是double类型,左右不一样
       //一个等号代表赋值,将右侧的int常量,交给左侧的long变量进行储存
       //int-->long,符合数据范围从小到大的要求
       //这一行代码发生了自动转换类型
       long name1 = 100;
       System.out.println(name1);//100
            
       //左边是double类型,右边float类型,左右不一样
       //double-->float,符合数据范围从小到大的要求
       //这一行代码发生了自动转换类型
       double name2 = 2.5;
       System.out.println(name2);//2.5
        }
}

7.2.强制类型转换(显式)

◆特点

代码需要进行特殊处理,不能自动完成

◆格式

范围小的类型  范围小的变量名 =  (范围小的类型)原本范围大的数据

public class Demo02DataType{
     public static void main(String[] args) {
         //int num = 100L;错误!!!
         int num =  (int) 100L;
         System.out.println(num);

      }
}

◆注意事项

◆强制类型转换一般不推荐使用,因为可能发生精度损失,数据溢出

public class Demo03DataType{
     public static void main(String[] args) {
         //long强制转换为int
         int num =  (int) 6000000000L;
         System.out.println(num);//1705032704

        //double-->int 强制类型转换
         int num3 =  (int) 3.99;
         System.out.println(num3);//3  这并不是四舍五入,所有小数位都会被舍弃掉


      }
}

◆byte/short/char这三种类型都可以发生数学运算,例如:加法“+”

(一旦char类型进行了数学运算,那么字符会按照一定的规则翻译成为一个数字)

public class Demo03DataType{
     public static void main(String[] args) {
        char zifu1="A";
         System.out.println(zifu1);//A
         System.out.println(ZIFU1+1);//66  大写字母A被当做65进行处理
         //计算机的底层会用一个数字(二进制)来表示字符“A”
      }
}

◆byte/short/char这三种类型在运算时,都会被首先提升为int类型,然后进行计算

public class Demo03DataType{
     public static void main(String[] args) {
     byte nume1 = 40;
     byte nume2 = 50;
     //byte+byte-->int+int-->int
     int result1 = nume1 + nume2;
     System.out.println(result1);   //90
      }
}

◆boolean类型不能发生数据类型转换

8.运算符

运算符:进行特定操作的符号

表达式:用运算符连起来的式子叫做表达式

8.1.算术运算符

8.1.1四则运算

加:+

减:-

乘:*

除:/

取模(取余):%

public class Demo04Operator {
   public static void main(String[] args) { 
      //两个常量之间可以进行数学运算
      System.out.println(20+30);
      //两个变量之间也可以进行数学运算
      int a = 10;
      int b = 20;
      System.out.println(a-b);//-10
      //变量和常量之间可以混合使用
       System.out.println(a*10);//100
       //被除数 / 除数 = 商 ...余数
       //对于一个整数的表达式来说,除法用的是整除,整数除以整数,结果任然是整数,只看商,不看余数,只有对于整数的除法来说,取模运算符,才有余数的意义
        int x = 10;
        int y = 3;
        int result1 = x / y;
        System.out.println(result1);//3
        int result2 = x % y;
         System.out.println(result2);//1
 
       }
}

8.1.2注意事项

①一旦运算当中有不同类型的数据,那么结果将会是数据类型范围大的那种

8.1.3加法的多种运算

对于数值来说,是加法

对于字符char类型来说,在计算之前,char会被提升为int,然后再计算。char类型字符,和int类型数字之间的对照关系表:ASCII,Unicode

对于字符串String((首字母大写)并不是关键字),加号代表字符串的连接操作,任何数据类型和字符串进行连接时,结果都会变成字符串


public class Demo05Plus {
    public static void main(String[] args) {
        //字符串类型变量的基本使用
        //数据类型 变量名称 = 数据值;
        String str1 = "hello";
        System.out.println(str1);//hello
        System.out.println("hello"+"world");//helloworld
        String str2 = "java";
        //String + int-->String
        System.out.println(str2+20);//java20
        //优先级问题
        //String+int+int
        //String     +int
        //String
        System.out.println(str2+20+30);//jiva2030
        System.out.println(str2+(20+30));//java50
    }
}

8.2.自增自减运算符

1.自增运算符:++

2.自减运算符:–

3.基本含义:让一个变量涨(降)一个数字1

4.使用格式:写在变量名称之前,或者写在变量名称之后。例如:++num,也可以num++

5.使用方式:

单独使用:不和其他任何操作混合,自己独立成为一个步骤

混合使用:和其他操作混合,例如与赋值混合,或者与打印操作混合等

6.使用区别

在单独使用的时候,前++和后++没有任何区别。也就是++num与num++是完全一样的

在混合使用的时候,有【重大区别】

a.如果是【前++】,那么变量【立刻马上加1,然后拿着结果进行使用】【先加后用】

b.如果是【后++】,那么变量首先使用变量本来的值,然后再让变量加1【先用后加】

7.注意事项

只有变量才能使用自增自减运算符,常量不可以使用++ —

public class Demo06Plus {
    public static void main(String[] args) {
        int num1 = 10;
        System.out.println(num1);//10
        ++num1;//单独使用,前++
        System.out.println(num1);//11
        num1++;//单独使用,后++
        System.out.println(num1);//12
        //与打印操作混合使用
        int num2 = 20;
        //混合使用,先++,变量立马变成21,然后打印结果21
        System.out.println(++num2);//21
        System.out.println(num2);//21
        int num3 = 30;
        //混合使用,后++,首先使用变量原来的30,然后再让变量加一得到31
        System.out.println(num3++);//30
        System.out.println(num3);//31
        int num4 = 40;
        //与赋值操作混合使用
        //混合使用,前--,变量变为39,然后将结果交给result1
        int result1 = --num4;
        System.out.println(result1);//39
        System.out.println(num4);//39
        int num5 = 50;
        //混合使用,后--,先将本来的数字50交给result2,然后再减1变成49
        int result2 = num5--;
        System.out.println(result2);//50
        System.out.println(num5);//49
        int x = 10;
        int y = 20;
        int result3 = ++x + y--;
        System.out.println(result3);
        System.out.println(x);
        System.out.println(y);
        
    }
 
}

8.3.赋值运算符

8.3.1分类

基本赋值运算符:就是一个“=”,代表右侧的数据交给左侧变量

☝ int a = 30;

复合赋值符运算符:

☝ +=            a += 3             相当于             a = a + 3

☝-=             b -=  4             相当于            b = b – 4

☝*=            c *= 5              相当于            c = c * 5

☝/=            d /= 6               相当于            d = d / 6

☝%=          e %=7             相当于            e = e % 7

public class Demo07Operator {
    public static void main(String[] args) {
        int a = 10;
        a += 5;//按照公式进行翻译:a = a + 5
        System.out.println(a);//15
        int x = 10;
        x %= 3;
        System.out.println(x);//1
    }
 
}


8.3.2注意事项

只有变量才能使用赋值运算符,常量不能进行赋值

复合赋值运算符其中隐含了一个强制类型转换

8.4.比较运算符

大于           >

小于           <

大于等于     >=

小于等于     <=

相等           ==

不相等        !=

public class Demo08Operator {
    public static void main(String[] args) {
        System.out.println(10>5);//ture
        int num1 = 10;
        int num2 = 12;
        System.out.println(num1 < num2);//ture
        System.out.println(num2 >= 100);//false
        System.out.println(num2 <=100);//ture
        System.out.println(10==10);//ture
        System.out.println(20!=25);//ture
    }     
}


8.4.1注意事项

比较运算符的结果一定是一个布尔值,成立就是ture,不成立就是false

如果进行多次判断,不能连着写。 数学中的写法,例如1<x< 10,程序当中不允许

8.5.逻辑运算符

1.与(并且):       &&       全都是 ture,才是ture; 否则就是false

2.或(或者):       ||           至少一个是 ture就是ture; 全都是 ture,才是ture。全都是false,才是false

3.非(取反):        !        本来是ture; 变成false;本来是false; 变成ture

public class Demo09Operator {
    public static void main(String[] args) {
        System.out.println(true && false);//false
        System.out.println(3 < 4 && 10 > 5);//true
        System.out.println(true || false);//true
        System.out.println(true || true);//true
        System.out.println(false || false);//false
        System.out.println(true);//true
        System.out.println(!true);//false
    }
 
}


与“&&”或“||”,具有短路效果:如果根据左边已经可以判断得到最终结果,那么右边代码将不在执行,从而节省一定的性能

4.注意事项

逻辑运算符只能用于布尔值

与.或需要左右各有一个布尔值,但是取反只要有唯一的一个布尔值即可

与,或两种运算符,如果有多个条件,可以连续写

☝两个条件:   条件A &&条件B

☝多个条件: 条件A &&条件B &&条件C

8.6.三元运算符

一元运算符

只需要一个数据就可以进行操作的运算符。例如:取反!,自增++,自减–

二元运算符

需要两个数据就可以进行操作的运算符。例如:加法+,赋值=

三元运算符

格式

数据类型 变量名称 = 条件判断  ? 表达式A  : 表达式B

流程

判断条件是否成立

若成立为ture,那么表达式A的值赋值给左侧的变量;若不成立为false,那么表达式B的值赋值给左侧的变量,二者选其一

public class Demo10Operator {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int max = a > b ? a : b;// 最大值变量
        System.out.println(max);//20
        
    }
 
}


注意事项

必须同时保证表达式A和表达式B都符合左侧数据类型的要求

三元运算符的结果必须被使用



版权声明:本文为weixin_53280964原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。