【Java】初识Java

Java和C语言有许多类似之处,这里就只挑不一样的点来说,所以会比较杂乱哈~


目录

1.数据类型

2.输入与输出

2.1三种输出

2.2输入

2.3循环输入输出

//猜数字小游戏

//打印乘法口诀表

3.方法

//交换两个数(数组的应用)

//模拟登陆(比较字符串)

3.1方法重(chong)载

3.2方法签名 


1.数据类型

1.基本数据类型:8种,byte,char,int,long,float,double,boolean

2.引用数据类型:类,数组,接口,string字符串,枚举类型……

与C语言的不同:

循环:while循环中条件必须为布尔表达式,所以 while(1) 在C语言中可编译在Java种不行,但是while(true)可以;当循环没有写括号时,循环只执行与之最近的代码。

2.输入与输出

2.1三种输出

 public static void main(String[] args) {
       System.out.println("输出且换行");
       System.out.print("输出不换行");
       System.out.printf("%s\n","格式化输出");
   }

2.2输入

需要导入util包,打出Scanner后Java自动提示,回车后自动导入

  public static void main(String[] args) {
       Scanner scan = new Scanner(System.in);//表示从键盘读入
       int a = scan.nextInt();//next+类型表示将要读入数据的类型
       System.out.println(a);
       double f = scan.nextDouble();
       System.out.println(f);
       scan.nextLine();//把回车吃走,否则下面的nextline会读取回车
       String name1 = scan.nextLine();//遇到空格不会结束
       System.out.println(name1);
       String name2 = scan.next();//遇到空格就结束,不会读取回车
       System.out.println(name2);
   }

2.3循环输入输出

Ctrl+D结束循环;Ctrl+C终止程序

public static void main(String[] args) {
     Scanner scan = new Scanner(System.in);
     while(scan.hasNextInt()){
         int a=scan.nextInt();
         int b= scan.nextInt();
         System.out.println(a+b);
     }
}

//猜数字小游戏

public static void main(String[] args) {
     Scanner scan = new Scanner(System.in);
     Random random = new Random();
     int randNum = random.nextInt(100);//[0~100)
     //int randNUm = random.nextInt(50)+50;//[50~100)60
     System.out.println("作弊:"+randNum);
     while(true){
         int n = scan.nextInt();
         if(n < randNum){
             System.out.println("猜小了~");
         } else if (n > randNum) {
             System.out.println("猜大了~");
         }else {
             System.out.println("猜对啦");
             break;
         }
     }
 }

//打印乘法口诀表

public static void main(String[] args) {
   for (int i = 1; i <= 9; i++) {
       for (int j = 1; j <= i; j++) {
            System.out.print(i+"*"+j+"="+i*j+" ");
       }
       System.out.println();
   }
}

3.方法

格式:访问修饰限定符  返回值类型  方法名 (形式参数列表){

           方法体代码;

           return 返回值;

}

访问修饰限定符:现阶段直接使用 public static 固定搭配;

注意:方法等同于C语言中的函数;方法是定义在类中的;方法的调用,每次都会在栈上开辟内存;每个方法都有其独立的空间。

//交换两个数(数组的应用)

在C语言中,我们有传值调用和传址调用,其中只有传址调用能够成功交换。在Java中,我们没有指针这一说法,也就是我们无法获取内存中的地址,那该怎么实现交换呢?

答案:传引用类型参数例如数组来交换。

public static void swap(int[] arr){
    int tmp = arr[0];
    arr[0] = arr[1];
    arr[1] = tmp;
}
public static void main(String[] args) {
    int[] arr = {1, 2};
    System.out.println("交换前:"+arr[0]+" "+arr[1]);
    swap(arr);
    System.out.println("交换后:"+arr[0]+" "+arr[1]);
}

//模拟登陆(比较字符串)

在C语言中我们肯定都写过模拟登陆的题目,其中有一环节:比较输入密码和原密码是否相同。C语言中使用库函数strcmp,Java中使用的是啥呢?

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    String password = scan.nextLine();
    if ( password.equals ("123456") ){
        System.out.println("密码正确!");
    }else {
    System.out.println("密码错误!");
    }
}

3.1方法重(chong)载

要求:方法名相同;参数列表不同(个数,类型,顺序);与返回值类型无关

优点:取名字很方便,例如求整型和与求浮点型和的函数名可以都为sum且不会报错(见下)。

public static int sum(int a,int b){
    return a+b;
}
public static double sum(double a,double b){
    return a+b;
}

3.2方法签名 

定义:方法全路径名+参数列表+返回值类型 

例如:int add (int, int) 真正的名字:extend01/TestMethod.add(II)I

          double add(double, double) 真正的名字:extend01/TestMethod.add(DD)D

查看:先对工程进行编译生成.class 字节码文件;在文件中进入要查看的.class所在的目               录(在out文件目录下启动cmd);输入 javap -v 字节码文件名即可。

 方法签名中一些特殊符号的含义:

V:void     Z:boolean     B:byte     C:char     S:short     I:int     J:long     F:float     D:double      [:数组,以 [ 开头,配合其他的特殊字符,表述相应类型数据的数组,几个 [ 表示几维数组L: 引用类型,以L开头 ; 结尾,中间是引用类型的全类名

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值