JavaSE 基础数据类型、变量、常量、常用设置和快捷键

基于JavaSE的基础

环境配置

  • 环境变量

java_home: D:\Java\jdk1.8.0_231

path %java_home%\bin; %java_home%\jre\bin

  • 设置项目框架
    在这里插入图片描述
    在这里插入图片描述
  • 设置包目录结构
    在这里插入图片描述

idea 常用设置和快捷键

psvm (生成主方法)

Sout (输出语句)

ctrl+D(复制当前行到下一行)

alt + Enter(生成错误信息)

Ctrl + Alt + v(自动补全变量名称)

Ctrl + Alt + f(自动补全属性名称)

ctrl+/(行注释)

ctrl+shift+/(块注释)

方法或类注释: 在一个方法或类的开头,输入/**,然后按回车,自动根据参数和返回值生成注释模板,我们在这个模板上面编写即可。
数值.forfori (快速生成for循环) 数组名.for(快速生成for-each循环)

数据类型

在这里插入图片描述
八大基本数据类型

public class Demo1 {
    public static void main(String[] args) {
        //整数
        int num1 = 10;  //最常用
        byte num2 = 20;
        short num3 = 30;
        long num4 = 30L;//long类型要在数字后加L,一定要大写 l很像1

        //浮点数(小数)
        float num5 = 43.1F; //float类型要在数字后加F
        double num6 = 3.1415926;

        //字符
        char name = '彦';
        //字符串 String不是关键字而是一个类
        String myName = "syan";
        
        //布尔值:是非
        Boolean flag = true;
    }
}

(进制、浮点数、字符、转义字符)扩展
**

public class Demo2 {
    public static void main(String[] args) {
        //进制 二进制 0b 十进制 八进制 0 十六进制 0x
        int i = 10;
        int i2 = 010; //八进制 0
        int i3 = 0x10; //十六进制
        System.out.println(i);//10
        System.out.println(i2);//8
        System.out.println(i3);//16

        /*浮点数? 银行业务怎么表示?
         *BigDecimal 数学工具类
         * float 有限、离散、舍入误差、大约、接近但不等于
         * double
         * 最好完全不使用浮点数进行比较
         */
        float f = 0.1f;
        double d = 1.0/10;
        System.out.println(f==d);

        //字符
        char c1 = 'a';
        char c2 = '彦';
        System.out.println((int)c2);//强制转换把字符变成数字
        //所有的字符本质还是数字
        //编码 Unicode 表(97=a 彦=24422)2字节 0-65536
        //U0000 - UFFFF
        char c3 = '\u0061';//uincode编码
        System.out.println(c3);

        //转义字符
        // \t 制表符
        // \n 换行....
        System.out.println("hello\tworld\nsyan!");
        
        //布尔值扩展
        boolean flag = true;
        if (flag==true){}
        if (flag);
        //less is more 代码要精简易读

    }
}

类型转换

低-------------------------------------------------------->高 (在内存中的容量高低)
byte,short ,char–>int–>long–>float–>double

public class demo3 {
    public static void main(String[] args) {
        int i = 128;
        //强制类型转换 (类型)变量名 高--低
        byte b = (byte)i;//byte最大值127 内存溢出
        //自动转换      低--高
        double c = i;
        System.out.println(c);//128.0
        System.out.println(b);//-128
        System.out.println(i);//128
        /*
        注意点:1.不能对布尔值转换
               2.不能把对象类型转换成不相干的类型
               3.在把高容量转换到低容量的时候需要强制转换
               4.转换的时候可能存在内存溢出,或者精度问题
         */
        System.out.println((int)23.7);//23
        System.out.println((int)-45.89f);//-45

        char d = 'a';
        int e = d+1;//自动转换
        System.out.println(e);//98
        System.out.println((char)e);//b
    }
}

类型转换注意点:

public class Demo4 {
    public static void main(String[] args) {
        //操作数比较大的时候,注意溢出问题
        //jdk7新特性,数字键可以用下划线分割
        int money = 10_0000_0000;//long类型数字后一定用大写L表示
        int years = 20;
        int total = money*years;
        System.out.println(total);//-1474836480,计算的时候溢出了
        long total2 = money*years;//俩乘数是int,转换之前已经存在问题了
        long total3 = money*((long)years);//先把其中一个转换
    }
}

变量、常量

每个变量单行声明赋值

public class Demo5 {
    //类变量 static可以在整个类中直接使用
    static double salary = 2500;//2500默认是int自动转化为double
    //属性:变量

    //实列变量:从属于对象(类)如果不自行初始化有默认值,需要new类来使用
    // 0 0.0 null 布尔值:默认false
    //除了基本类型其余的默认值都是null
    String name;
    int age;

    //main方法
    public static void main(String[] args) {
        //局部变量:只在块里有用,必须声明和初始化值
        int i = 10;
        //实例变量
        //变量类型 变量名字 = new Demo5();拿到对象
        Demo5 demo5 = new Demo5();
        System.out.println(demo5.age);

        //类变量
        System.out.println(salary);//2500.0
    }
    //其他方法
    public void add(){
    }
}

常量

常量(Constant):初始化(Initilize)后在程序运行过程中不可以再改变值

常量名一般是用大写字符命名

final 常量名=值;

public class Demo6 {
    
    //static、final 都是修饰符不用区分先后顺序
    static final double PI = 3.14;
    final static double M = 18.0;
    public static void main(String[] args) {
        System.out.println(PI);
        System.out.println(M);

    }
}

变量命名规范

类成员变量:首字母小写后面单词首字母大写(驼峰原则):monthSalary
局部变量: 首字母小写后面单词首字母大写(驼峰原则
常量: 大写字母和下划线 :MAX_VALUE
类名: 每个单词的首字母大写:Man,GoodMan
方法名: 首字母小写后面单词首字母大写(驼峰原则):run(), newRun()

运算符

(多使用(),括号的优先级是最高的)

算术运算符:+,-,,/,%(模运算取余),++,–
赋值运算符:=
关系运算符:>,<,>=,<=,==,!=,instanceof
逻辑运算符:&&(与),||(或),!
位运算符:&,|,^,~,>>,<<,>>>
条件运算符: ?:
扩展赋值运算符:+=,-=,=,/=

  • 二元运算符
package operator;
//除法运算注意点
public class Demo01 {
    public static void main(String[] args) {
        //二元运算
        int a = 10;
        int b = 20;
        System.out.println(a/b);//0,都是int型0.5只保留整数部分
        System.out.println(a/(double)b);//0.5
    }
}

package operator;

public class Demo02 {
    public static void main(String[] args) {
        long a = 122344522221123L;
        int b = 128;
        short c = 12;
        byte d = 8;
        //运算中有long类型结果为long类型,其它为int型
        System.out.println(a+b+c+d);//122344522221271,long类型
        System.out.println(b+c+d);//148,int型
        //short+byte也为int型
        System.out.println(c+d);//20,int型
    }
}
  • 一元运算符
package operator;

public class Demo3 {
    public static void main(String[] args) {
        //++ -- 自增自减运算
        int a = 1;
        int b = a++;//先把a的值赋给b,然后a的值加一再执行下一行代码
        int c = ++a;//先把a的值加一,再把a的值赋给c
        System.out.println(a);//3
        System.out.println(b);//1
        System.out.println(c);//3
        
        //幂运算 Java中没有2^3 很多运算有时需要借助工具类
        double pow = Math.pow(2,3);
        System.out.println(pow);//8.0
    }
}
  • && || !

与运算执行时会先判断第一个条件是否为true,若为false则不会执行后面的条件,直接执行下一条语句

  • 位运算 &,|,^,~,>>,<< 效率极高
A = 0011 1100
B = 0000 1101

A&B = 0000 1100 //与运算
A|B = 0011 1101 //或运算
A^B = 0011 0001 //异或运算(俩数不同则结果为1,相同为0)
~B = 1111 0010  //非运算
 /*面试题 怎样操作最快得到 2*8 的结果
 <<(左移) 相当于 *2
 0000 0000   0
 0000 0001   1
 0000 0010   2  !
 0000 0011   3
 0000 0100   4
 0000 1000   8
 0001 0000   16 !
 >>(右移) 相当于 /2
 */
 2<<3 = 16
  • 字符串连接符 +
package operator;

public class Demo04 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 30;
        //只要遇到String类型后面就都转化为string字符串,没遇到前正常加法运算
        System.out.println(a+b+""+c);//3030
        System.out.println(""+a+"hello"+b+"");//10hello20
    }
}
  • 三元运算符
package operator;

public class Demo5 {
    public static void main(String[] args) {
        //三元运算符  a ? b :c
        //如果a==true 结果为b,否则结果为c
        int s = 80;
        String type = s<80 ?"不及格":"及格";
        System.out.println(type);//及格
    }
}

包机制

包就相当于文件夹

一般使用公司域名的倒置作为包名 www.baidu.com => com.baidu.www

为了能够使用某一个包的成员,我们需要在java程序中导入该包。使用“import”语句可完成此功能

package com.syan.operator;//package必须放在最上面,import放在它下面
import java.util.Date;
import java.util.*; //.*是通配符的意思会导入这个包下的所有东西

Java doc

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

javadoc 参数 java文件

package com.syan.base;

/**
 * -----文档注释-----
 * @author syan
 * @version 1.0
 * @since 1.8 自然号
 */
public class Doc {
    String name;
    /**
     * @param name
     * @return
     * @throws Exception
     */
    public String test(String name) throws Exception{
        return name;
    }
}
  • 用命令行生成doc在这里插入图片描述
  • 在idea中生成
    ​ ①在工具栏中找到 tool >> Generate JAVADoc…
    在这里插入图片描述
    ②配置参数
    在这里插入图片描述
    参数说明:
  1. Whole project>>整个项目都生成
  2. Custom scope>>自定义范围,如下:project files 项目文件,project production files 项目产品文件,project test files 项目的测试文件, 未知范围,class hierarchy 类层
  3. include test source 包含测试目录
  4. include JDK and … 包含jdk和其他的第三方jar
  5. link to JDK documentation…链接到JDK api
  6. output directy 生成的文档存放的位置
  7. private、package、protected、public 生成文档的级别(类和方法)
  8. 右边的Generate…是选择生成的文档包含的内容,层级树、导航、索引…
  9. 再右边是生成的文档包含的内容信息,作者版本等信息
  10. Locale 语言类型,zh-CN
  11. Other command line arguments 其他参数 -encoding utf-8 -charset utf-8
  12. Maximum heep… 最大堆栈
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值