java学习小笔记二


前言

java初学,感觉和c语言的初始架构挺像的
(题外话,那个module有点像是verilog里面的)


一、变量与常量

1:变量分为局部,成员,静态;成员变量和静态变量我还不是特别理解
局部变量具体用法可参考c语言,先声明一个变量,后续需要赋值进行初始化

//这是一个关于变量的简单java程序
package demo;

public class demo2 {
    public static void main(String[] args){
        int a;
        a=3;
        System.out.println(a);//差点忘记了,代码还是得多练啊;

    }
};


2:常量
常量一旦用final赋值,将无法再改变

package demo;

public class demo3 {
    public static void main(String[] args){
        final int a=3;//用了final就代表着常量已经被固定了,无法更改
        System.out.println(a);
    }

}

二、数据类型

1.基本数据类型

在这里插入图片描述
字节长度
byte 1字节 ;short 2;int 4; long 8;
float 4; double 8;

整型

package demo;
public class demo4 {
    public static void main(String[] args){
        int a=100;//十进制
        int b=015;//八进制
        int c=0xff;//十六进制
        int d= 0b1010_1000;//二进制
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
    }

}

整型常量默认都是int类型

浮点型

基本上都用double而不用float,默认是double

package demo;
public class demo5 {
    public static void main(String[] args){
        double a1 = 3.14;
        double b1 = 3,14;
        System.out.println(a1);
        System.out.println(b1);
    }
    
}

这个代码报错了,很奇怪,报错原因是 java: 需要<标识符>
找到错误了,我b1那里的小数点写成逗号了;
一个小建议,类名最好需要大写例如,demo5改写成Demo5会好一点,更符合规范
浮点型最好不要用于比较, "="是赋值 "=="是比较.

字符型

用的是Unicode编码
默认用char

package demo;

public class Demo6 {
    public static void main(String[] args){
        char a='这是一个汉字'; //用单引号就可以了
        System.out.println(a);
    }
}

不出意外,这个代码也报错了,后来发现char只能表示单字符,(java中没有字符串)而我用的是多字符,所以需要将char改为String
需要注意的是,首字母需要大写!!

转义字符

在这里插入图片描述

布尔型

占一个或者四个字节
只能有true或者false,不能用1和0.这和c语言有点不一样

package demo;

public class Demo7 {
    public static void  main(String[] args){
        boolean a = true;
        boolean b = true;
        if (a) {
            System.out.println(a);
        }else{
            System.out.println(b);
        }
    }
}

这次终于对了,输出结果是 true

2.运算符

在这里插入图片描述
和c语言的很像,可以帮助理解
逻辑运算符

/**
 * 测试逻辑运算符
 */
package demo;

public class Demo8 {
    public static void main(String[] args){
        boolean a = true;
        boolean b = false;
        System.out.println(a&b);//与,会执行完所有的语句
        System.out.println(a|b);
        System.out.println(!b);
        System.out.println(a&&b);//短路与,只要有一个是错的就自动停止了
        System.out.println(a||b);
        
    }

}

在这里插入图片描述
这是代码运算结果

位运算符

是二进制的计算,与逻辑运算很像,判断时需要先转化为二进制,

package demo;

public class Demo9 {
    public static void main(String[] args){
        int a = 7;
        int b = 8;
        System.out.println(a & b);//与运算,有0即为0
        System.out.println(a|b);//或运算,有一个1即为1
        System.out.println(a^b);//异或运算,不同则取1
        System.out.println(~b);//取反
    package demo;

public class Demo9 {
    public static void main(String[] args){
        int a = 7;
        int b = 8;
        System.out.println(a & b);//与运算,有0即为0
        System.out.println(a|b);//或运算,有一个1即为1
        System.out.println(a^b);//异或运算,不同则取1
        System.out.println(~b);//取反
        int c = 5<<2;//相当于5*2*2
        System.out.println(c);
        System.out.println(40>>3);//相当与40/8.最快的办法

    }

}

运算结果如下
在这里插入图片描述

字符串连接符

当其中有一个是字符的时候.+就自动变为字符串连接符

package demo;

public class Demo10 {
    public static void main(String[] args){
        int a = 3;
        int b = 4;
        System.out.println(a+b);
        String c = "3";
        int d = 4;
        System.out.println(c+d);
        char e = 'h';
        char f = 'i';
        System.out.println(e+f);
        System.out.println(""+e+f);

    }

}

代码运行结果如下

在这里插入图片描述

需要注意的是,必须是String而不是char,解决办法加上,在前面加一个""+

条件运算符

package demo;

public class Demo11 {
    public static void  main(String[] args){
        int score = 90;
        String b =score<60?"不及格":"及格";
        System.out.println(b);
    }

    

}

结果如下

在这里插入图片描述

运算符优先级

在这里插入图片描述

3.类型转换

自动数据类型转换

容量少的数据类型可以转化为容量大的转化类型,指的是固定的容量,而不是赋值的容量

在这里插入图片描述

/**
 * 这是一个测试自动数据转换的代码
 */
package demo;

public class Demo12 {
    public static void  main(String[] args){
        int a = 2441;
        long b = a;
        //int c = b;//int类型不能自动转换为long类型;
        byte c = 123;
        //byte d = 1234;//报错了,因为byte只能涵盖-128-1278


    }
}

强制类型转化

又称为造型(cast)

package demo;

public class Demo13 {
    public static void main(String[] args){
        double a = 3.1831763;
        int b =(int)a;
        System.out.println(b);//会丢失小数部分
        byte c =(byte)300;//大于了范围会随机生成一个数,300随机生成44
        System.out.println(c);
    }
}

在这里插入图片描述

4.拓展

有关Scanner的用法

/**
 * 这是一个有关scanner的测试文件
 * 做一个拓展的小例子
 */
package demo;
import java.util.Scanner;


public class Demo14 {
    public static void main(String[] args){
        Scanner a = new Scanner(System.in);

        System.out.println("请输入用户名");
        String name = a.nextLine ( );

        System.out.println("请输入你的年龄");
        int age = a.nextInt();

        System.out.println("请输入你的月薪");
        int  money = a.nextInt();

        System.out.println("你的名字是:" + name);
        System.out.println("你的年龄是:" + age);
        System.out.println("你的月薪是:" + money);

    }


}

类似与一个c语言中的人机交互,键入式输入
一个小tips
要是打这些东西打烦了,比如public static void main() 可以直接打main,在IDLE上就会直接打出public static void main(),System.out.println()的缩写则为sout,笔者认为还是蛮有用的

总结

笔者今天学习了java的一些基本的小概念

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值