java基础

java基础

数据类型

java强类型语言,所有变量必须先定义后使用。

java中的数据类型分两大类分别是

  1. 基本类型
  2. 引用类型

在这里插入图片描述

long num=30L             //long类型在后面加L 为了区分
float num=30.1F          //float类型在后面加F 为了区分
  • 位(bit):计算机内部数据存储的最小单位
  • 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B表示
  • 1B(byte,字节)=8bit(位)
  • 1Bbyte=8bit 1024B=1KB 1024KB=1M
  1. 二进制以0b开头
  2. 八进制以0开头
  3. 十六进制以0x开头

最好完全避免使用浮点类型进行比较, 因为浮点数 是离散,会舍入误差

银行业务 使用 BigDecimal数学工具类 不使用浮点数

 		float f=0.1f;
        double d=1.0/10;
        System.out.println(f == d);  //false

        float d1=2546546549879879f;
        float d2=d1+1;
        System.out.println(d1 == d2);//true

所有的字符本质还是数字 Unicode编码

a=97 A=65 ‘\u0061’ =a \u表示转义

转义字符

所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加""来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。

\t 制表符 \n换行

类型转换

byte ,short , char -> int -> long -> float -> double

小数的优先级大于整数 所以float在前,不同的数据类型转换成同一类型,在进行运算

强制类型转换

 		int i =128;
        byte j=(byte) i; // 强制转换  高->低   byte最大为127  内存溢出
        System.out.println(j);   // -128

自动类型转换

  		int i =128;             
        double j= i;             //低到高  会自动转换
        System.out.println(j);   //128.0

		char c='a'
        int d=c+1;               //低到高  会自动转换
		System.out.println(d);   //98

注意

	1. 布尔值不能进行转换   因为布尔是位
	2. 转换的时候可能出现内存溢出,或精度问题
		//jdk7新特性,数字之间可以用下划线分隔
        int money = 10_0000_0000;
        System.out.println(money); //1000000000

        int year = 20;
        int total = money * year;
        System.out.println(total);  //-1474836480,内存溢出
        long tota2 = money * year;
        System.out.println(total);  //-1474836480,还是会内存溢出,因为
        //money和year都是整数 在转换成long前就出现问题了

        long tota3 = money * ((long) year);   //正确写法
        System.out.println(tota3);   //20000000000正确

变量 常量 作用域

变量:可以变化的量。

变量作用域

​ 类变量: 从属于类,类变量。

​ 实例变量:从属于对象,不用初始化。默认值 数值类型是0,字符串默认是 null 布尔值默认 false。除了基本类型其他默认值都是null。

​ 局部变量: 必须声明和初始化值,只在{ }内有效

public class test01 {

    static int a=0;       //类变量
    String str="哈啊哈";  //实例变量

    public static void main(String[] args)  {
        int i=0;  //局部变量
    }
}

常量:初始化后不能再改变值! 常量一般使用大写字符命名。

        final double PI=3.14;

变量的命名规范

类成员变量,局部变量:首字母小写和驼峰原则
常量:大写字母和下划线   MAX_YES
类名:首字母大写和驼峰原则
方法名:首字母小写和驼峰原则

运算符

  • 算术运算符包括通常的加(+)、减(-)、乘(*)、除(/)、取模(%),“++”和“–”
  • 关系运算符用来比较两个值,包括大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)和不等于(!=)
  • 逻辑运算符包括逻辑与(&&)、逻辑或(||)和逻辑非(!)。
  • 位运算符用来对二进制位进行操作,包括按位取反(~)、按位与(&)、按位或(|)、异或(^)、右移(>>)、左移(<<)和无符号右移(>>>)。
  • 赋值运算符:=
  • 扩展复制运算符:+=,-=,*=,/=
  • 条件运算符( ? : )
    多个操作数中有一个为lang类型 结果就是lang类型,如果没有lang结果都为int
long a=13456465465L;
int b=123;
short c=11;
byte d=20;
System.out.println(a+b+c+d);  //结果Long类型
System.out.println(b+c+d);  //结果int类型
System.out.println(c+d);    //结果int类型

关系运算符:返回值是 布尔值

自增自减

	    int a=3;

        int b=a++;   //执行完这行代码后,先给b赋值,再自增
        //相当于下行代码隐藏了 a=a+1
        System.out.println(a);      //4
        //++a 相当于在前面执行了a=a+1
        int c=++a;//执行完这行代码前,先自增,再赋值

        System.out.println(a);   //5
        System.out.println(b);   //3
        System.out.println(c);   //5

位运算

A=0011  1100
B=0000	1101
A&B=0000	1100
A|B=0011	1101
A^B=0011	0001
~B=1111	0010
<< *2   >> /2

字符串连接符

        int a=10;
        int b=20;
       //字符串连接符  +,String
        System.out.println(""+a+b); //1020  连接   	字符串在前会拼接
        System.out.println(a+b+""); //30

三元运算符

	  // x ? y:z
      int a=10;
      System.out.println(a > 20?"哈哈" : "呵呵"); //呵呵

包机制

为了更好的组织类,java提供了包机制,用于区别类名的命名空间

包的命名规则:一般是公司域名倒置作为包名 www.baidu.com 包名: com.baidu.www

为了能使用某一包的成员,我们需要导入包,import package 即可

javaDOC

javadoc命令是用来生成自己的API文档的

标签说明
@author作者标识
@version版本号
@return对函数返回值的描述
@param说明方法的参数
@since指明需要最早使用的jdk版本
@throws异常抛出情况

在命令行 javadoc -encoding UTF-8 -charset=UTF-8 类名.java 就会生成doc文当

-encoding UTF-8 -charset=UTF-8为了显示中文

使用IDEA生成javadoc文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值