三 Java基础

创建项目

直接创建项目

image-20220112153416706

创建空项目增加模块

  1. new 空项目

    image-20220112153254488

  2. File -> new -> ​​Module

    image-20220112153221472

  3. 设置项目结构 File -> Project Structure

    image-20220112153629549

  4. 设置java的SDK版本 与 相对应的项目语言版本

    image-20220112153904243

注释

  • 单行注释

    // 单行注释
    
  • 多行注释

    /*
    多行注释
    多行注释
    多行注释
    */
    
  • 文档注释

    /**
    * @Description 文档注释
    * @Author ShaneCheng
    */
    

标识符

  • 关键字

image-20211205160809674

  • 标识符:Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。

注意点

  • 所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始
  • 首字符之后可以是字母(A-Z或者a-z),美元符($)、下划线(_)或数字的任何字符组合
  • 不能使用关键字作为变量名或方法名
  • 标识符是大小写敏感
  • 合法标识符举例: age、$salary._value、__1_value
  • 非法标识符举例:123abc、-salary、tabc
  • 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low

数据类型

强类型语言与弱类型语言

  • 强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用(Java、C++)

    • 强类型安全,因为它事先已经确定好了,而且效率高
  • 弱类型语言:它的数据类型是可以被忽略的语言,与强类型定义相反。(javaScript)

    • 弱类型更灵活,但是效率低,而且出错概率高

Java数据类型分类

img

  • 基本类型(primitive type):基本类型共有八种,其中包括六种数值型与两个非数值型。
数据类型大小(单位:bit/位)所属包装类最小范围最大范围
byte8java.lang.Byte-128+127
short2byte = 16java.langShort-32768+32767
int4byte = 32java.lang.Integer-2^31+2^31-1
long8byte = 64java.lang.Long-2^63+2^63-1
float4byte = 32java.lang.Float-3.4 * 10^38+3.4 * 10^38
double8byte = 64java.lang.Double-1.7 * 10^308+1.7 * 10^308
char2byte = 16java.lang.Character065535
boolean所占大小不明确java.lang.Boolean只有"true"和"false"两个取值

(注解:数据存储最小单位是“bit/位”,数据处理的基本单位1byte/字节 = 8bit/位)

  • 引用类型(reference type):除了基本数据类型之外的数据类型
    • 类、接口、数组等

Java基本数据类型扩展(面试题)

  • 特殊需要加后缀的表示

    Long num1 = 30L; //long类型要在数字后面加个L
    float num2 = 50.1F; //float类型要在数字后面加个F
    
  • 整数:各类进制表示

    int i1 = 10;//十进制     10
    int i2 = 0b10;//二进制    2
    int i3 = 010;//八进制     8
    int i4 = 0x1F;//十六进制  31 
    
  • 浮点型:最好完全避免浮点数进行比较

    • 解决方案:BigDecimal类
    float f1 = 0.1f;
    double f2 = 0.1;
    System.out.println(f1==f2);//结果为false
    
    float f3 = 123472894782374287f;
    float f4 = f3 +1;
    System.out.println(f3==f4);//结果为true
    
  • 字符型:所有字符的本质还是数字,Unicode编码方式,数字与字符一一对应(0~65535)

    char c1 = 'a';
    char c2 = '中';
    System.out.println((int)(c1));//结果为97
    System.out.println((int)(c2));//结果为20013
    
    char c3 = '\u0061';
    System.out.println(c3);//结果为a
    
  • Java常见的转义字符

    转义字符意义ASCII码值(十进制)
    \a响铃(BEL)007
    \b退格(BS) ,将当前位置移到前一列008
    \f换页(FF),将当前位置移到下页开头012
    \n换行 (LF),将当前位置移到下一行开头010
    \r回车 (CR) ,将当前位置移到本行开头013
    \t水平制表 (HT) (跳到下一个TAB位置)009
    \v垂直制表(VT)011
    \\代表一个反斜线字符’\'092
    \’代表一个单引号(撇号)字符039
    \’’代表一个双引号字符034
    \0空字符(NULL)000
    \ddd1到3位八进制数所代表的任意字符三位八进制
    \xhh1到2位十六进制所代表的任意字符二位十六进制

    注意:区分,斜杠:"/" 与 反斜杠:"\" ,此处不可互换

  • 字符串比较 :最好用equals()方法

    //对象 从内存分析
    String sa = new String("hello,world");
    String sb = new String("hello,world");
    System.out.println(sa==sb); //这里的比较的是地址 所以不相同,输出false
    String sc = "hello,world";
    String sd = "hello,world";
    System.out.println(sc==sd);//相同 输出true
    
  • 布尔值用于条件判断

    //Less is More! 代码要精简易读
    if(flag==true){}  //新手
    if(flag){}        //老手 
    

基本数据类型转换

由于Java是强类型语言,所以要进行有些运算的时候的,需要用到类型转换。

运算中,不同类型的数据先转化为同一类型,然后进行运算。

低------------------------------------------高

byte,short,char-> int -> long-> float -> double
  • 强制类型转换: 由高到低 需要声明强制转换,格式: (类型)变量名

    int i =128;
    byte j = (byte) i;//内存溢出 byte(-128~127) 结果为-128
    
  • 自动类型转换:由低到高 不需要声明

    byte  i = 127;
    int j = i ;	
    

⭐️注意点:

  1. 不能对布尔值进行转换
  2. 不能把对象类型转换为不相干的类型
  3. 在大容量转换到低容量的时候,强制转换
  4. 转换的时候可能存在内存溢出,或者精度问题

😠特别注意:操作比较大的数,注意溢出问题.​

int money = 10_0000_0000;jdk7新特性 ,数字之间可以用下划线分割,有无下划线值一样
int years =20;
int total = money *years; //-1474836480,计算结果溢出
long total2 = money * years;//-1474836480,默认是int,转换之前已经存在问题
long total3 = money * (long)years;//20000000000

变量,常量,作用域

变量

变量是什么:就是可以变化的量!
Java是一种强类型语言,每个变量都必须声明类型
Java变量是程序中最基本的存储单元,其要素包括变量名变量类型作用域

type varName[=value] [i,varName[=value]}];
//数据类型变量名=值;可以使用逗号隔开来声明多个同类型变量。

⭐️注意事项

  • 每个变量都有类型,类型既可以是基本类型,也可以是引用类型
  • 变量名必须都是合法的标识符
  • 变量声明是一条完整的语句,因此每一个声明都必须要以分号结束

😄不介意一行里定义多个变量

变量作用域

  • 类变量:从属于类

  • 实例变量:从属于对象,如果不自行初始化值,这个类型会有默认值

    数据类型默认值
    整形0
    浮点型0.0
    布尔型false
    字符型‘\u0000’
    引用类型null
  • 局部变量:必须声明和初始化值

    public class Variable{
        static int allClicks = 0;//类变量
        String str = "hello , world";//实例变量
    
        public void method() {
            int i = 0;//局部变量
        }
    }
    

变量的命名规范

  • 所有变量、方法、类名 : 见名知意
  • 类成员变量 : 首字母小写和驼峰原则: monthSalary
  • 局部变量 : 首字母小写和驼峰原则
  • 常量 : 大写字母和下划线:MAX_VALUE
  • 类名 : 首字母大写和驼峰原则: Man, GoodMan
  • 方法名 : 首字母小写和驼峰原则: run(), runRun()

常量

常量(Constant) : 初始化(initialize)后不能再改变值! 不会变动的值。

所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。

关键字:final

😄常量名一般使用大写字符。

final 常量名=;
final double PI=3.14;

⭐️修饰符不区分先后顺序,例如final、static​

运算符

基本运算符

  • 算术运算符:加(+)、减(-)、乘(*)、除(/)、取模(%)

    • 加(+)扩展

      long a = 123456789123456789L;
      int  b = 123;
      short c = 10;
      byte d = 8;
      
      System.out.println(a+b+c+d);//long类型
      System.out.println(b+c+d);//int类型
      System.out.println(c+d);//int类型
      
  • 关系运算符:大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)、不等于(!=)、instanceof(对象是否为类的实例)

  • 逻辑运算符:逻辑与(&&)、逻辑或(||)、逻辑非(!)

  • 位运算符:按位取反(~)、按位与(&)、按位或(|)、异或(^)、右移(>>)、左移(<<)、无符号右移(>>>)

    • 右移(>>):针对补码,补符号位
    • 无符号右移(>>>) : 针对补码,补0
  • 条件运算符 (?:)

  • 扩展赋值运算符:+=,-=,*=,/=

自增自减运算符

//++ 自增 --自减
int b = a++;//先赋值 再自增(a=a+1)
int c = ++a;//先自增(a=1+1) 再赋值

包机制

包语句的语法格式,必须放在代码的最上面

package pkg1[.pkg2[.pkg ...]];
  • 一般利用公司名字倒置作为包名;

    com.baidu.www
    

    image-20220116163705704

⭐️多级目录无法展开的问题

 点击箭头所指齿轮-->点击相应的设置

image-20220116163850676

  • 导入包

    import pkg1[.pkg2[.pkg ...]].(classname|*);
    

    快捷键: Alt+ 回车

    import com.* //导入com包下的所有类
    

JavaDoc生成文档

参数信息

  • @author作者名
  • @version 版本号
  • @since指明需要最早使用的jdk版本param参数名
  • @return返回值情况
  • @throws 异常抛出情况

通过命令行生成帮助文档

  1. 编写文档注释
package com.Cheng.base;

/**
 * @author ShaneCheng
 * @version 1.0
 * @since 1.8
 */
public class Demo_Doc {
    String name;

    /**
     *
     * @param name
     * @return
     * @throws Exception
     */
    public String test(String name) throws Exception{
        return name;
    }
}
  1. 打开文件所在文件夹位置

image-20220116170050810

  1. 在该位置打开相应的cmd窗口(在文件地址栏前面加上cmd+空格,回车即可打开)

  2. 输入相应的文档生成命令

    javadoc -encoding UTF-8 -charset UTF-8 Demo_Doc.java
    

    即可得到相应的html文件等信息

    image-20220116170745063

    点击index.html打开得到生成的帮助文档页面

    image-20220116170853443

通过idea生成javaDoc文档

  1. 打开相应的选项面板

img

  1. 设置

-encoding是java代码编码,-charset是对生成文档所用的编码。-windowtitle就是对应html的标签

-encoding UTF-8 -charset UTF-8 -windowtitle "test"

img

  1. 结果

img

通过idea生成javaDoc文档

  1. 打开相应的选项面板

img

  1. 设置

-encoding是java代码编码,-charset是对生成文档所用的编码。-windowtitle就是对应html的<title>标签

-encoding UTF-8 -charset UTF-8 -windowtitle "test"

img
3. 结果
img

引用:

https://www.cnblogs.com/bd-Luming/p/10394270.html

https://www.cnblogs.com/noKing/p/8006298.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值