java基础

注释

单行注释

  • //

多行注释

idea (/*加回车)

  • /*

  • */

文档注释

  • /**

  • */
    用于生成api文档 命令Javacdoc
    idea生成api文档

    在这里插入图片描述

字符


  • 需要使用分号的地方

    • 包的声明
    • 类的导入
    • 属性声明
    • 执行的代码

    可不加

    • 方法声明
    • 类与类之间

空白字符

  • 使用tab 空格 换行(\n)回车(\r),对代码本身不会有影响

标识符

名字有规范 只能是字母数字下划线和$
开头不能是数字
字符大小写敏感
标识符的长度没有限制
不能使用关键字和保留字

类型

概念

  • bit 计算机最小的传输单位
  • byte 计算机最小传输单位
    • 1byte==8bit
    • 1kb== 1024byte
    • 1mb==1024kb
    • 1g==1024mb
    • 1t==1024g

数据类型

  • boolean
  • char 两个字节 16位
    表示字符a
public class TestChar {
    public static void main(String[] args) {
        //直接
        char x = 'a';
        //十进制
        char y = 97;
        //二进制
        char z = 0b01100001;
        //八进制
        char a = 0141;
        //十六进制
        char b = 0x61;
        //十六进制unicode编码
        char c = '\u0061';
        System.out.println(x);
        System.out.println(y);
        System.out.println(z);
        System.out.println(a);
        System.out.println(b);//ctrl alt 加方向键可快速复制当前行
        System.out.println(c);
    }
}

特殊字符无法直接打印,可通过转移字符\直接换

  • 整形

    • int 占1个字节 -27~27-1
    • byte 占2个字节 -215~215-1
    • short 占4个字节 -231~231-1
    • long 占8个字节 -263~263-1
    • 十进制 -3
      • 机器数10000011
      • 真值-3
      • 原码
        • +3 00000011
        • -3 10000011
      • 反码
        • +3 00000011
        • -3 11111100
      • 补码
        • +3 00000011
        • -3 11111101

      正数原码反码补码都一样
      负数 原码->(符号位不变其他按位取反)反码->(反码加一)补码

  • 浮点型

    • float
    • double

浮点计算精度丢失问题

System.out.println(1.0-0.66);
//输出结果: 0.33999999999999997
//add方法 +
//subtract方法 -
//multiply方法 *
//divide方法 /
BigDecimal d1 = BigDecimal.valueOf(1.0);
BigDecimal d2 = BigDecimal.valueOf(0.66);
double result = d1.subtract(d2).doubleValue();
System.out.println(result);
//输出结果:0.34
  • 乱码
    • GBK 一个字符两个字节
    • UTF-8 一个中文三个字节
    • ISO-8859-1

变量

基本变量

变量声明

 public static void main(String[] args) {
        //声明
        int a;
        //局部变量需要赋值才能使用,声明后对其初始化
        //初始化
        a=1;
        System.out.println(a);
        //将a付给b
        int b =a;
        b=b+1;
        System.out.println(b);
    }

变量类型转换

(int) (char) (byte) -1 的值,给出步骤

-1 求补码 
原码 10000000 00000000 00000000 00000001
反码 11111111 11111111 11111111 11111110
补码 11111111 11111111 11111111 11111111

(byte) -1
	11111111 11111111 11111111 11111111
							   11111111
类型转换 
	byte->short->int->long	
	
	byte->char 没有关系
	int -> char 97 -> a
	
(char) (byte) -1
	   (int)(byte)-1
		11111111 11111111 11111111 11111111
	   (char)(int)(byte)-1
		11111111 11111111 (无符号)
		
(int) (char) (byte) -1 = 65535
		00000000 00000000 11111111 11111111 +1
		00000000 00000001 00000000 00000000 65536

public static void main(String[] args) {
        //前提:左边的类型=右边的类型
        //不一致
        int a = 1;//左右都是int
        byte b = 10;//左边是byte 但右边的值在左边的范围内,系统会自动转型
        //类型转换
            //自动类型转换 低精度->高精度
        byte c = 1;
        int d = c;
            //手动类型转换 高精度->低精度
        int e = 256;
//        byte f = e;//e的精度更高,需要强制转换
        byte f = (byte) e;//输出是0
        System.out.println(f);
        //注意:如果把浮点强制转换成整数 舍弃小数
        float g = 1.9f;
        int h = (int)g;
        System.out.println(h);//输出是1
    }

引用变量

用类创建对象

public class Student {
   int sno;
   String name;
   int age;
   public void basketball(){
       System.out.println("我是练习了" + age +"年的练习生"+name);
   };

    public static void main(String[] args) {
        //创建对象,左边是类,右边是对象
        Student s = new Student();
        //设置属性
        s.name = "萨瓦迪卡";
        s.age = 2;
        s.sno = 2;
        //对象调用方法 对象名.方法名
        s.basketball();
    }
}

类型转换

  • 子父类 子类->父类
  • 所有类都继承Object类
  • 类型转换
		Student s2 = new Student();
        System.out.println(s2);
        Object o = s2;
        Student s3 =(Student) o;

作用
基本数据类型只能接收基本数据类型
引用数据类型只能接收引用类型(对象)

局部变量

public class Demo4 {
    public static void main(String[] args) {
        /*
        局部变量只能在自己的方法内使用
        局部变量没有默认值,不赋值无法使用该变量
        局部变量的使用在一个大括号{}内使用
         */
        int a;
        a=1;
        System.out.println(a);//不对a赋值无法使用
        {
            System.out.println("这里可以使用a且"+"a="+a);
        }
    }
}

全局变量

public class Demo6 {
    //全局变量
        //有默认值
            //int byte short long默认值都是0
            //boolean 默认 false
            //char 默认 空字符
            //double float 默认0.0
        //非静态方法共享,静态方法不能共享
    int a;//若不赋值,默认为0
    byte b;
    short c;
    long d;
    char e;
    float f;
    double g;
    boolean h;
    public void test(){
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println(e);
        System.out.println(f);
        System.out.println(g);
        System.out.println(h);
    }
    public static void main(String[] args) {
        Demo6 demo =new Demo6();
        demo.test();
    }
}

操作符

操作符作用例子
=最基础的赋值操作符,=号右边的值,赋给=号左边变量int a = 1; int x = 0;
*=一个变量和另一个数据相乘,并把结果再赋值给这个变量int a = 1; a*=2; //a = a*2;
/=一个变量和另一个数据相除,并把结果再赋值给这个变量int a = 2; a/=2; //a = a/2;
%=一个变量和另一个数据相余,并把结果再赋值给这个变量int a = 5; a%=2; //a = a%2;
+=一个变量和另一个数据相加,并把结果再赋值给这个变量int a = 5; a+=2; //a = a+2;
-=一个变量和另一个数据相减,并把结果再赋值给这个变量int a = 5; a-=2; //a = a-2;
>比较是否大于1>0
>=比较是否大于等于1>=0
<比较是否小于1<2
<=比较是否小于等于1<=2
instanceof判断对象是否属于指定类型stu instanceof Student
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值