Java基础

注释

注释不会被执行,Java中注释有三种

  • 单行注释

     //单行注释
  • 多行注释

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

     /**
     * @Description HelloWorld
     * @Author Yulu
     */

 

标识符和关键字

关键字

Java关键字

标识符

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

所有标识符都应以字母、$、或下划线开头

首字符后可以是字母、$、下划线或数字的任何字符组合

不能使用关键字作为变量名或方法名

标识符是大小写敏感的

数据类型

强类型语言:要求变量的使用严格符合规定,所有变量必须先定义后使用

弱类型语言

Java数据类型分为两大类

  • 基本类型

  • 引用类型

     

     

整数拓展:

二进制八进制十进制十六进制
0b 0   0x

 

浮点数拓展:

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

尽量少使用浮点数进行比较,用BigDecimal替代

 

字符拓展:

强制类型转换(所有的字符本质还是数字)

 char c1 = 'a';
 char c2 = '中';
 System.out.println(c1);      //a
 System.out.println((int)c1); //97
 System.out.println(c2);      //中
 System.out.println((int)c2); //20013

 

编码:

 char c3 = '\u0061';
 System.out.println(c3);      //a

 

转义字符:

\t 制表符

\n 换行符

 

字符串比较:

 String stra = new String("Hello World");
 String strb = new String("Hello World");
 String strc = "Hello World";
 String strd = "Hello World";
 System.out.println(stra == strb);     //false
 System.out.println(strc == strd);     //true

 

布尔值扩展:

 boolean flag = true;
 
 if(flag == true) {}
 if(flag) {}
 //推荐后者,代码要精简易读

 

类型转换

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

运算中,不同类型的数据应先转化为同一类型

强制类型转换:高->低

int i = 128;
byte j = (byte)i;

System.out.println(j); //-128 内存溢出

自动类型转换:低->高

int i = 128;
double j = i;

System.out.println(j); //128.0

注意

  1. 不能对布尔值进行转换

  2. 不能把对象类型转换为不相干的类型

  3. 在把高容量转换到低容量时,强制转换

  4. 转换的时候可能存在内存溢出,或者精度问题

  5. JDK 7新特性,数字之间可以用下划线分割

    int money = 10_0000_0000;
    System.out.println(money);
  6. 操作较大数时,注意溢出问题

    int money = 10_0000_0000;
    int years = 20;
    int total1 = money*years; //-1474836480
    long total2 = money*years; //-1474836480
    long total3 = money*((long)years); //20000000000

 

变量、常量、作用域

变量

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

//数据类型 变量名 = 值;

注意

  1. 每个变量都有类型,可以是基本类型,也可以是引用类型

  2. 变量名必须是合法的标识符

  3. 变量声明是一条完整的语句,因此每一个声明都必须以分号结束

  4. 不建议在一行定义多个变量

作用域

public class Demo {

//类变量
static double salary = 2500;

//实例变量:从属于对象,如果不进行初始化,将是这个类型的默认值(0/0.0/null/false)
int age;
String name;

public static void main(String[] args) {
//局部变量:必须声明和初始化值
int i = 10;
System.out.println(i); //10

Demo demo = new Demo();
System.out.println(demo.age); //0
System.out.println(demo.name); //null

System.out.println(salary); //2500
}

public void add() {

}
}

常量

初始化后不能再改变的值,可理解为特殊的变量,值被设定后,在程序运行过程中不允许被改变。常量名一般使用大写字符

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

命名规范

  1. 所有变量、方法、类名:见名知意

  2. 类名:首字母大写和驼峰原则。eg:GoodMan

  3. 类成员变量:首字母小写和驼峰原则。eg:lastName

  4. 局部变量:首字母小写和驼峰原则。eg:monthSalary

  5. 方法名:首字母小写和驼峰原则。eg:runAway()

  6. 常量:大写字母和下划线。eg:MAX_VALUE

 

基本运算符

  1. 算术运算符:+,-,*,/,%,++,--
    package operator;

    public class Demo01 {
    public static void main(String[] args) {
    //二元运算符
    int a = 10;
    int b = 20;

    System.out.println(a+b); //30
    System.out.println(a-b); //-10
    System.out.println(a*b); //200
    System.out.println(a/b); //0
    System.out.println(a/(double)b); //0.5
    System.out.println(a%b); //10

    //一元运算符
    int c = 3;
    int d = c++; //先给d赋值,再进行c自增
    int e = ++c; //先给c自增,再给e赋值
    System.out.println(c); //5
    System.out.println(d); //3
    System.out.println(e); //5

    //幂运算
    double pow = Math.pow(2,3);
    System.out.println(pow); //8.0
    }
    }
    package operator;

    public class Demo02 {
    public static void main(String[] args) {
    long a = 1231231312312212123L;
    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类型
    }
    }
  2. 赋值运算符:=
  3. 关系运算符:>,<,>=,<=,==,!=,instanceof
    package operator;

    public class Demo03 {
    public static void main(String[] args) {
    int a = 10;
    int b = 20;
    System.out.println(a > b); //false
    System.out.println(a < b); //true
    System.out.println(a == b); //false
    System.out.println(a != b); //true
    }
    }
  4. 逻辑运算符:&&,||,!
    package operator;

    public class Demo04 {
    public static void main(String[] args) {
    boolean a = true;
    boolean b = false;

    System.out.println("a && b:"+(a&&b)); //false
    System.out.println("a || b:"+(a||b)); //true
    System.out.println("! (a && b):"+!(a&&b)); //true

    //短路
    int c = 6;
    boolean d = b && c++<6;
    System.out.println(d); //false
    System.out.println(c); //6
    }
    }
  5. 位运算符:&,|,^,~,>>,<<,>>>
    package operator;

    public class Demo05 {
    public static void main(String[] args) {
    /*
    A = 0011 1100
    B = 0000 1101

    A & B = 0000 1100
    A | B = 0011 1101
    A ^ B = 0011 0001
    ~B = 1111 0010

    2 * 8 = 16 位运算效率极高
    << *2
    >> /2
    0000 0000 0
    0000 0001 1
    0000 0010 2
    0000 0011 3
    0000 0100 4
    0000 1000 8
    0001 0000 16
    */
    System.out.println(2<<3); //16
    }
    }
  6. 条件运算符:? :
    package operator;

    public class Demo07 {
    public static void main(String[] args) {
    //x ? y : z
    //如果x为true,则结果为y,否则结果为z

    int score = 80;
    String type = score >= 60 ? "pass" : "fail";
    System.out.println(type); //pass
    }
    }
  7. 扩展赋值运算符:+=,-=,*=,/=
    package operator;

    public class Demo06 {
    public static void main(String[] args) {
    int a = 10;
    int b = 20;

    a += b;
    System.out.println(a); //30

    //字符串连接符
    System.out.println(""+a+b); //3020
    System.out.println(a+b+""); //30
    }
    }

 

包机制

Java提供包机制,用于区分类名的命名空间

一般利用公司域名倒置作为包名

为了使用某一个包的成员,我们需要在Java程序中明确导入该包,使用import即可

 

JavaDoc

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

参数信息

  1. @author 作者名

  2. @version 版本号

  3. @since 指明需要最早使用的JDK版本

  4. @param 参数名

  5. @return 返回值情况

  6. @throws 异常抛出情况

命令行生成javadoc文档
javac -encoding UTF-8 -charset UTF-8 Doc.java

文件夹中将生成index.html

 

IDEA生成javadoc文档

-》打开IDEA

-》Tools

-》Generate JavaDoc

-》选择是整个项目还是模块还是单个文件

-》指定文档输出路径

-》Locale选择地区(这将决定文档的语言,zh_CN是中国)

-》传入JavaDoc的参数,一般这样写 -encoding UTF-8 -charset UTF-8 -windowtitle “文档HTML页面标签的标题” -link http://docs.Oracle.com/javase/8/docs/api

 

posted @   南嘉lu  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示