Java基础

打印 上一主题 下一主题

主题 552|帖子 552|积分 1656

Java基础

注释


  • 平时我们编写代码,在代码量比较少的时候,我们还可以看懂自己写的,但是当项目结构一旦复杂起来,我们就需要用到注释
  • 注释并不会被执行,是给我们写代码的人看的
  • 书写注释是一个非常好的习惯
  • 平时写代码一定要注意规范
Java注释有三种


  • 单行注释:样式修改 File -> settings -> Editor -> Java -> Comments ->Line comment
  1. //单行注释只能注释一行
复制代码

  • 多行注释:
  1. /*
  2. 这是多行注释
  3. 可以注释多行
  4. */
复制代码

  • 文档注释
  1. /**
  2. 这是文档注释
  3. @Description  Hello World
  4. @Author 李光宇
  5. */
复制代码
标识符


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


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

abstractassertbooleanbreakbytecase**catch **charclassconst**continue **defaultdodoubleeles**enum **extendsfinalfinallyfloatforgoto**if  **implementsimport**instanceof  **intinterfacelongnativenewpackageprivateprotectedpublicreturnstrictfpshortstaticsuperswitch**synchronized  **thisthrowthrowstransienttryvoid**volatile **while数据类型(两大类)


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

字节


  • 位(bit): 是计算机内部数据存储的最小单位,11001100是一个八位二进制数
  • 字节(byte): 是计算机中数据处理的基本单位,习惯上用大写B来表示
  • 1B(byte,字节) = 8bit(位)
  • 字符:是指计算机中使用的字母、数字、字和符号
  • 1bit 表示1位
  • 1Byte表示一个字节 1B=8b
  • 1024B=1KB
  • 1024KB=1M
  • 1024M=1G
数值类型

整数类型

JDK7新特性;数字之间可以用下划线分割
  1. int money = 10_0000_0000;
  2. System.out.println(money); // 1000000000;
复制代码

  • byte    1字节   -128~127
  • short   2字节   -32768~32767
  • int        4字节   -2147483648~2147483647
  • long     8字节   -9223372036854775808~9223372036854775807
  1. long num=30L;
复制代码
浮点类型


  • float     4字节
  1. float num = 50.1F;
复制代码

  • double 8字节
字符类型


  • char      2字节
布尔类型


  • boolean  true 和 false
引用类型 (reference type)



  • 接口
  • 数组
拓展

整数拓展


  • 二进制      0b
  1. int bit = 0b101;
复制代码

  • 八进制      0
  1. int bit = 0175;
复制代码

  • 十进制
  1. int bit = 125;
复制代码

  • 十六进制   0x
  1. int bit = 0xad123;
复制代码
浮点数拓展


  • 不要用浮点数比较    有限    离散    舍入误差  大约  接近但不等于
  1. //案例一
  2. float f = 0.1f;   //f:0.1
  3. double d = 1.0/10;//d:0.1
  4. System.out.println(f==d);//false
  5. //案例二
  6. float f1 = 2313131313131313f;
  7. float f2 = f1 + 1;
  8. System.out.println(d1==d2); //true
复制代码

  • BigDecimal :可以使用
字符拓展


  • 所有的字符本质还是数字
  1. char c1= 'a';
  2. char c2='中';
  3. System.out.println(c1);       //a
  4. System.out.println((int)c1);  //97
  5. System.out.println(c2);       //中
  6. System.out.println(int(c2));  //20013
复制代码

  • Unicode  2 字节  0 ~65534
  1. char c3= '\u0061';  \u是转意字符  \t制表符  \n换行 ....
  2. System.out.println(c3)//a
复制代码

  • 地址对象的不同
  1. String sa = new String("helloworld");
  2. String sb = new String("helloworld");
  3. System.out.println(sa==sb); // false
  4. String sc = "helloworld";
  5. String sd = "helloworld";
  6. System.out.println(sc==sd);  //true
复制代码
布尔拓展


  • 功能相同,代码要精简易读(Less Is More)
  1. boolean flag = true;
  2. if(flag){}                 //老手
  3. if(flag==true){} //新手
复制代码
类型转换


  • 由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换
  1. // 低 ---------------------------->  高
  2. byte,short,char -> int -> long ->float ->double
复制代码

  • 运算中,不同类型的数据先转化为同一类型,然后进行计算
强制类型转换   (类型)变量名

高到低需要强制转换

  • 内存溢出(避免)
  1. int i = 128;
  2. byte b= (byte)i;
  3. System.out.println(i); //128
  4. System.out.println(b); //-128
  5. int money = 10_0000_0000;
  6. int years = 20;
  7. int total = money * years;
  8. System.out.println(total); //-1474836480;
  9. long total2 = money * years; //-1474836480;默认是int,转换之前问题已经存在
  10. long total3 = money * (long)years;
  11. System.out.println(total3);//20000000000
复制代码

  • 失去精度
  1. System.out.println((int)23.7); //23
  2. System.out.println((int)-45.89f); //-45
复制代码
自动类型转换

低到高不需要手动转换
  1. byte i = 127;
  2. int b= i;
  3. System.out.println(i); //128
  4. System.out.println(b); //128
  5. char c = 'a';
  6. int d = c + 1;
  7. System.out.println(d); //98
  8. System.out.println((char)d); //b
复制代码
注意点


  • 不能对布尔类型转换
  • 不能把对象类型转换为不相关的类型
变量


  • 变量是可以变化的量
  • Java是一种强类型语言,每个变量都必须声明其类型
  • Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
  1.         type varName [=value] [{,varName[=value]}];
  2. // 数据类型       变量名 = 值; 可以使用逗号隔开来声明多个同类型变量
复制代码
变量作用域


  • 类变量
  • 实例变量
  • 局部变量
  1. public class Variable{
  2.        
  3.     static int allClicks = 0;  //类变量 ,static
  4.    
  5.     String str = "hello world";//实例变量,从属于对象,不初始化就是默认值,                                                     boolean 默认 false;除了基本类型,其余的默认值都是null;
  6.    
  7.     public void method(){
  8.         int i = 0; //局部变量,方法里,必须声明和初始化值
  9.     }
  10. }
复制代码
注意事项


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


  • 常量(Constant): 初始化(initialize)后不能再改变值,不会变动值
  • 常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变
  1. final 常量名 = 值;
  2. static final 常量名 = 值;
  3. final static 常量名 = 值;//修饰符不存在先后顺序
  4. final double PI = 3.14;
复制代码

  • 常量名一般使用大写字母
命名规范


  • 所有变量、方法、类名;见明知意
  • 类成员变量;首字母小写和驼峰原则;monthSalary 除了第一个单词以外,后面的单词首字母大写 lastName
  • 常量:大写字母和下划线;MAX_VALUE
  • 类名:首字母大写和驼峰原则;Man,GoodMan;
  • 方法名:首字母小写和驼峰原则;run(),runRun()
运算符

Java语言支持如下运算符:
算术运算符


  • +、-、*、/、%、++、--
赋值运算符


  • =
关系运算符


  • < 、>、>=、>、>(了解!!!)
条件运算符


  • ? :
扩展赋值运算符


  • +=、-=、*=、/=
运算


  • 整数除以整数,运算结果有小数会舍弃,需转为(cast)浮点型
  1. int a=10;
  2. int b=20;
  3. System.out.println(a/b);//0
  4. System.out.println(a/(double)b);//0.5
  5. System.out.println(a%b);//1  取余,模运算
复制代码

  • 与long 运算的转为long,其余的整数类型运算会转(cast)为int类型,若是有double则转为double类型
  1. long a=121232131212L;
  2.         int b  = 123;
  3.         short c= 10;
  4.         byte d =  8;
  5.         System.out.println(a+b+c+d);//long
  6.         System.out.println(b+c+d);//int
  7.         System.out.println(c+d);//int
复制代码

  • 关系运算返回Boolean值
  1. int a = 10;
  2. int b = 20;
  3. System.out.println(a>b);//false
  4. System.out.println(a<b);//true
  5. System.out.println(a!=b);//true
复制代码

  • 优先级
比较运算符优先级高于逻辑运算符,除了赋值运算符,其余都是左结合运算
包机制


  • 本质就是文件夹
  • 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间
  • 包的语法格式为
  1. int a= 3;
  2. int b= a++; //执行完这行代码后,先给b赋值,在自增
  3. System.out.println(a);//4
  4. int c=++a;  ////执行完这行代码前,先自增,在给c赋值
  5. System.out.println(a);//5
  6. System.out.println(b);//3
  7. System.out.println(c);//5
复制代码

  • 一般用公司域名倒置作为包名 www.baidu.com --->  com.baidu.www
  • 为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包,使用'import'语句即可
  1. //幂运算
  2. double pow=Math.pow(3,2);
  3. System.out.println(pow);//9
复制代码
JavaDoc


  • javaDoc命令是用来生成自己 API 文档的
  • 参数信息

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

  • 命令: javadoc -encoding utf-8 charset utf-8 路径\文件.java

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

科技颠覆者

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表