> 文档中心 > 快速掌握JAVA基础数据类型-综合

快速掌握JAVA基础数据类型-综合

                                                                                    

目录

1. 注释、标识符、关键字

2. 数据类型

3. 类型转换

4.变量和常量

5. 运算符

6. 包机制、JavaDoc


1.1 注释(扫一眼就行)

        注释本质上就是对代码的解释说明,很多代码,尤其是当年项目结构变得很复杂的时候,对代码做适当的标注,记录,有助于查阅代码,尤其是时间一长我们连自己写的代码都看不懂了(坑啊),这个时候注释就显得那么重要。当然也是为了代码规范性以及可维护性考虑。

        所以看见书写注释是一件多么重要且好的习惯

        Java中注释有三种:分别为单行注释,多行注释,文档注释。

示例:    

public class Demon1 {    public static void main(String[] args) { // 单行注释 String name = "小明"; int age = 30; /*  多行注释 随便写, 跟着狂神学习SE系列*/ System.out.println(age);    }}

     除此之外,查阅其他博客发现也有很多有趣的代码注释等,例如

/* * ░░░░░░░░░░░░░░░░░░░░░░░░▄░░ * ░░░░░░░░░▐█░░░░░░░░░░░▄▀▒▌░ * ░░░░░░░░▐▀▒█░░░░░░░░▄▀▒▒▒▐ * ░░░░░░░▐▄▀▒▒▀▀▀▀▄▄▄▀▒▒▒▒▒▐ * ░░░░░▄▄▀▒░▒▒▒▒▒▒▒▒▒█▒▒▄█▒▐ * ░░░▄▀▒▒▒░░░▒▒▒░░░▒▒▒▀██▀▒▌ * ░░▐▒▒▒▄▄▒▒▒▒░░░▒▒▒▒▒▒▒▀▄▒▒ * ░░▌░░▌█▀▒▒▒▒▒▄▀█▄▒▒▒▒▒▒▒█▒▐ * ░▐░░░▒▒▒▒▒▒▒▒▌██▀▒▒░░░▒▒▒▀▄ * ░▌░▒▄██▄▒▒▒▒▒▒▒▒▒░░░░░░▒▒▒▒ * ▀▒▀▐▄█▄█▌▄░▀▒▒░░░░░░░░░░▒▒▒ * 单身狗。 */

1.2 标识符

        1.2.1 关键字

        Java所有组成部分都需要名字。类名,变量名以及方法名都被称为标识符,当然标识符的命名是不能和关键字重复的,这个无可厚非,golang等很多语言也是如此。

        

Java关键字如下表所示,

abstract assert boolean break byte
case catch char class const
continue default do double else
enum extends final finally float
for goto if implements import
instance of int interface long native
new package private protected public
return strictfp short static super
swtich synchronized this throw throws
transient try void volatitle while

        1.2.2  标识符需要注意点什么

  •  所有的标识符首字符必须是字母(A-Z或a-z)$,或者下划线_
  • 首字符之后可以是字母,$,下划线以及数字的任意字符组合。
  • 不能使用关键字作为变量名或者方法名
  • 标识符对于大小写是敏感的。

 2.1  数据类型

        2.1.1 基本数据类型

                强类型语言:        

                        要求变量的使用要严格且要符合规定,所有变量都必须先定义后才能使用,即一旦变量类型被定义,除非强制转换,否则不会改变其数据类型,强类型语言包括Java、.net 、Python、C++等语言。

                弱类型语言:例如vb 、PHP、javascript等语言。

                比较:强类型语言因为其使用严格,安全性较高,这里的安全性多指由于严谨性从而避免产生不必要的错误。

        Java数据类型分类如下图所示:

        

代码示例:

        

public class Demon2 {    public static void main(String[] args) { //八大基本数据类型 int num1 = 10; byte num2 = 20; short num3 = 30; long num4 = 30L; //long类型要在数字后面加L //浮点数 float num5 = 50.1F; //float类型要在数字后面加个F double num6 = 3.141592673892939378472; //字符 注:char只能放单个字符 单引号 //字符:字母,数字,字和符号 char name = '王'; //字符串String不是关键字,是类 String name1 = "kuangshen"; //布尔值 boolean flag = true; //boolean flag = false;    }}

       数据类型注意不要越界的问题即可。      

        2.1.2 数据类型扩展

                整数类型扩展:进制,二进制,八进制,十六进制

public class Demon3 {    public static void main(String[] args) { //整数拓展 进制:二进制0b,十进制,八进制0,十六进制0x int  num1 = 10; int  num2 = 010;  //8进制 int  num3 = 0x10; //16进制 System.out.println(num1);  //10 System.out.println(num2);   //8 System.out.println(num3); //16    }}

                浮点数扩展:

        如下所述:

        float 类型 有限 有误差 接近但是不等于,所以f=d是false

***最好不要使用浮点数来进行比较,容易出现问题,使用java bigDecimal类。

public class Demon3 {    public static void main(String[] args) { //整数拓展 进制:二进制0b,十进制,八进制0,十六进制0x int num1 = 10; int num2 = 010;  //8进制 int num3 = 0x10; //16进制 System.out.println(num1);  //10 System.out.println(num2);   //8 System.out.println(num3); //16 System.out.println("========================================="); // 浮点数扩展   // float 有限  接近但是不等于 float f = 0.1f; double d = 1.0 / 10; System.out.println(f == d);  //false System.out.println(f); System.out.println(d); float d1 = 123904905901f; float d2 = d1 + 1; System.out.println(d1 == d2);  //true System.out.println("========================================="); //字符扩展 //所有字符本质还是数字 unicode编码 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); //24378 char c3 = '\u0061'; System.out.println(c3); //a //转义字符 // \t制表符  \n 换行  //boolean 扩展 boolean flag = true; if (flag == true) { } if (flag) { }    }}

        2.1.3类型转换

        当数据从大转换到小,需要使用到强制类型转换。也就是说使用强制类型转换的关键点在于数据类型大范围------>数据类型小范围,例如int型----->byte型 需要强制类型转换。

        由于java是强类型语言,所以进行部分运算时,需要用到强制转换。

                低---------------------------------------------------------------------------------------->高

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

注:运算中,不同类型的数据必须先转成同一类型,然后在进行相应运算。

ps:     什么时候需要用到强制类型转换?,什么时候需要用到自动类型转换? 

示例:

package Base;public class Demon6 {    public static void main(String[] args) { int a = 128; byte b = (byte) a; //强制转换格式  (类型)变量名     高--->低    这个和python区别还挺大 哈哈 //自动转换  低---->高 System.out.println(a); //128 System.out.println(b); //-128 /* 内存溢出  造成上面的问题,也就就数据范围由大到小转换的时候,可能会存在内存溢出的问题 注意点:     1:不能对布尔值进行转换     2: 不能吧对象类型转换为不相干的类型     3:高范围---->低范围转换  需要强制转换     4:转换的时候可能会存在内存溢出问题,或者是精度问题。  */    }}
package Base;public class Demon7 {    public static void main(String[] args) { double a = 27.3; float b = -45.98f; System.out.println((int)27.3); //27  高-低  自动转 System.out.println((int)-45.98f);//-45 精度丢失 System.out.println("============================"); char c = 'a'; int d = c + 1; System.out.println(d);  //98 System.out.println((char) d); //b    }}
package Base;public class Demon8 {    public static void main(String[] args) { //操作比较大的数的时候,注意溢出问题 //JDK7新特性,数字之间可以用下划线分割 int money = 10_000_00000; int year = 20; int total = money * year;   System.out.println(total); // -1474836480  计算的时候溢出了    }}

3.1 变量和常量

        3.1.1 变量

                Java是一种强类型语言,每个变量都必须声明其类型

                Java变量是程序中最基本的存储单元,其中包含变量名+变量类型+作用域

                

type varName1 = value1type varName2 = value2type varName3 = value3,value4,//数据类型 变量名 = 值 来声明一个变量//可以使用逗号隔开来声明多个同类型变量

       注意:

  •   每个变量均是有类型的,类型要么是基本类型,要么就是引用类型
  •   变量名必须是合法的标识符
  •   变量的声明是一条完整的语句,声明必须以分号;结尾。
public class Demon4 {    public static void main(String[] args) { int a = 1; int b = 2; int c = 3; String name = "西安"; char x = 'x'; double p1 = 3.14;    }}

     变量的命名规范 :

  •  所有变量,方法,类名命名符合开发要求,即:见名知意
  • 类成员变量:首字母小写和驼峰原则:mouthSalary
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线   PI  MAX_VALUE
  • 类名:首字母大写和驼峰原则:Man BadBoy
  • 方法名:首字母小写和驼峰原则 run(), runRun()

          3.1.2 常量 (Constant)

  • 初始化后,值无法改变,也就是值被设定之后,在程序运行过程中不允许改变
  • final double PI = 3.14 //final 常量名=值;
  • 常量名一般使用大写字符。

      示例;       

public class Demon7 {    // 修饰符不存在先后顺序    final static double PI = 3.14;//    static final double PI = 3.14;    public static void main(String[] args) { System.out.println(PI);    }}

  

        3.1.3 作用域

        类变量

        实例变量

        局部变量

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

public class Demon6 {   /*   除了基本数据类型,其余默认值都是null;   boolean默认值是flase    */    static double salary = 2500;    String name; //属性;变量    int age;  //实例变量,从属于对象;如果不自行初始化,这个类型的默认值0  0.0    //main方法    public static void main(String[] args) { int i = 10;//局部变量:必须声明和初始化值 System.out.println(i); //变量类型  变量名 = new Demon6(); Demon6 demon6 = new Demon6(); System.out.println(demon6.age);  //  默认值 System.out.println(demon6.name);  //null  默认值    }    //其他方法    public void add(){    }}

4.1 运算符

        

        4.1.1 基本运算符

package Operator;public class Demon2 {    public static void main(String[] args) { int a = 10; int b = 20; System.out.println(a>b); // 关系运算符返回的结果,只有true或者false System.out.println(a%b);  // 10// 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// long a = 123456000000000789L;// int b = 123;// short c = 10;// byte d = 8;// System.out.println(a+b+c+d); //  long// System.out.println(b+c+d); //141 int// System.out.println(c+d); //18 int    }}

        4.1.2  自增自减,Math类

        

package Operator;public class Demon4 {    public static void main(String[] args) { // 一元运算符 ++ -- int a = 3; int b = a++; //执行完这行代码后,先给b赋值,在自增 System.out.println(a); //4 int c = ++a; //执行完这行代码后,先自增,再给b赋值 System.out.println(a);  //5 System.out.println(b); //3 System.out.println(c); //5 //幂运算 2^3  java自带数学类   double pow1 = Math.pow(2,3);   System.out.println(pow1); //很多运算,我们通常会使用一些工具类来操作    }}

        4.1.3 逻辑运算符,位运算符

        与  或 非 

        >>  <<

补充:字符串拼接

  System.out.println("---"+a);  //---false

        注:实际上计算机不会有加减等操作,底层在做加乘除是利用 位运算以及逻辑运算。

        4.1.4 三元运算法+小结

                本质就是在做简化 没别的含义

package Operator;public class Demon7 {    public static void main(String[] args) { // 格式; x ? y : z //  如果x为真,那么结果就是y,否则就是z int score = 80; String root = score < 60 ? "不及格" : "及格"; System.out.println(root);    }}

5.1 包机制+JavaDoc

        5.1.1 包机制

  • 为了更好的组织类,JAVA提供了包机制,用于区别类名的命名空间
  • 包语句的语法格式为 
    Package pkg1
  • 一般利用公司域名倒置作为包名
  • import com.compancy.wenku(举例)com.zhang.www
  • 为了能够使用某一个包的成员,需要在JAVA程序中明确导入该包,使用“import”语句可以完成此功能。

  • import package1 * 

  • z
    import java.util.Scanner;

        5.1.2 JavaDoc (注释中的文档注释)

JavaDoc:将注释生成HTML文档,本质就是将代码类的关系等结构以文档的形式展示,使其一目了然.

百度搜索JAVA帮助文档

帮助文档

API文档

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

参数信息:

@author jklove@version 版本号@since 指明需要最早使用的jdk版本@param 参数名@return 返回值情况@throws异常抛出情况
package Base;//  /**回车/** * @author kuangshen * @version 1.0 * @since 1.8 */public class doc {    String name;    /**     *      * @param name     * @return     */    public String test(String name){ return name;    }}

加在类上面就是就是类的注释,加在方法上就是方法的注释,方法上/**回车会自动写好

1:命令行生成javadoc

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

IDEA生成javadoc  API文档

 tools  选择generate javadoc

说明:上述学习记录来源于狂神JAVASEkuangshen