首页 > 编程语言 > 详细

Java的基础语法

时间:2021-06-18 09:14:17      阅读:17      评论:0      收藏:0      [点我收藏+]

Java基础语法

注释

注释不会被执行

  1. 单行注释: //注释
    技术分享图片

  2. 多行注释:/* 注释 */

技术分享图片

  1. 文档注释: /** 注释 */

技术分享图片


标识符

? 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
instanceof int interface long native
new package private protected public
return stritfp short static super
switch synchronized this throw throws
translent try void volatlle while

注意

  1. 标识符的首字母只能用字母(大小写)、下划线(_)、美元符号($)、
  2. 首字母之后可以用字母(大小写)、下划线(_)、美元符号($)、数字的组合
  3. 标识符是大小写敏感的
  4. 不能使用关键字做为类名或方法名等
  5. 可以使用中文命名,但尽量不要

数据类型

? Java分为两种数据类型,分别为基本数据类型和引用数据类型

? string不是基础数据类型,是一个类

基本数据类型

整数型

int

byte

short

long :在数字后要加一个L作为标识

技术分享图片

浮点型:小数

float :在数字后要加一个F作为标识

技术分享图片

字符型: 只能是一个字符

char

布尔值:是非

boolean

引用数据类型

  1. 接口
  2. 数组

数据类型拓展

整数型

进制 :在数字前加数字,更换进制

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

浮点型

? 因为浮点是有限位,且离散,有舍入误差,大约,接近但不等于,所以最好完全避免使用浮点数进行比较

? 银行业务怎么表示钱?

使用Bigdecimal 数学工具类

字符型

? 所有字符本质上都是数字

? 使用编码 unicode 表:U0000-UFFFF

转义字符

  • 制表符\t
  • 换行符\n

对象

String a=new String(oriqinal:"hello world");
String b=new String(oriqinal:"hello world"); 
String.out.println(a=b);
String c="hello world";
String d="hello world";
String.out.println(c=d);

结果为

false

true

原因要从内存分析

布尔值

boolean flag =true;
if(flag==true){}//新手
if(flag){}//熟练

类型转换

低---------------------------------------------------→高

byte,short,char→int→long→float→double

强制类型转换

? 当将类型高的数据转换为类型低的数据时,进行强制转换

? (类型)变量名

注意:强制类型转换可能导致内存溢出

自动类型转换

? 当将类型低的数据转换为类型高的数据时,将进行自动转换

? 自动转换将自动进行

注意

操作比较大的数时,注意溢出问题

? 容易有内存溢出问题或精度问题

不能对布尔值进行转换

不能将对象类型转化为不相干的类型


变量

变量是程序中的最基本存储单元,要素包括变量名,变量类型和作用域

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

注意:

  • 每个变量都有类型,可以是基本类型,也可以是引用类型
  • 变量名必须是合法的标识符
  • 每个声明都必须以分号结束

作用域

  1. 局部变量:必须声明初始值,作用域为括号内{}
public static void main(String[] args){
    int a = 1;//局部变量
}
  1. 实例变量:从属于对象,如果不自行初始化,会为这个类型的默认值 0、0.0

    布尔值:默认是false

    除了基本类型,其余的类型默认值都是null

    public class Day1_2{
        int age;
    }
    
  2. 类变量:static,作用域为整个类

public class Day1_2{
    static int a =1;
}

常量

? 初始化后不能再改变值,不会变动的值

//final 常量名 =值
final A =1.0;

? 注意:常量名一般全部使用大写字符

? 修饰符不区分前后顺序

变量的命名规范

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

常量:大写字母和下划线

驼峰原则:除了第一个单词外,其余单词首字母大写

类名:首字母大写和驼峰原则

其余都用:首字母小写和驼峰原则

运算符

? 运算符分为一元运算符、二元运算符等,x元运算符表示有几个运算的数据

  • 算术运算符:+、-、*、/、%(取余,又称模运算)、++、--
  • 赋值运算符 =
  • 关系运算符:>、<、>=、<=、==、!=、instanceof
  • 逻辑运算符:&&、||、!
  • 位运算符:&、|、^、~、>>、<<、>>>(暂时只需了解)
  • 条件运算符:?、:
  • 拓展赋值运算符:+=、-=、*=、/=

? 整数运算具有long类型的数据时,输出结果的数据为long,其余皆为int类型

? 运算时,如果有高一级的数据,则输出结果的数据为高一级的数据

? 整数运算时,如果出现小数,会出现精度问题

? 幂运算不是^,想要进行幂运算要借助数学类工具

Math.pow(x,y)//=x^y

? 许多运算都需要借助类工具Math.


  • 自增自减运算符:++、--……

    作用:给数据+1或-1

int a =1
    a++	//此时a=2

? a++与++a的区别

? 运算符在前(如++a)则先运算,再赋值

? 运算符在后(如a++)则先赋值,再运算

	int a =1
    int b = a++ //此时b=1,a=2
    int c = ++a //此时c=3,a=3

  • 逻辑运算符:&&、||、!输出值为布尔值

    &&:只有运算的两个数据都为真,则输出true

    ||:只要运算的其中一个数据为真,则输出true

    !:运算真,输出假

    逻辑运算为短路运算,即如果执行代码时,如果第一个数据可以判断输出结果,则不会继续进行运算

	int c =1;
	System.out.println((c>1)&&(c++));
	System.out.println(c);

? 输出结果为

? false

? 1

? 因为在第一个括号内c>1已经判断是假,则结果一定为假,因此c++不会被执行


  • 位运算符:&、|、!、>>、<<、>>>、^(异或)

    位运算符运算时是基于二进制的运算

    位运算符运算效率极高!

    /*
    A=0010 0110
    B=1001 0101
    -------------------
    A&B=0000 0100
    A|B=1011 0111
    A^B=1011 0011
    !B=0110 1010
    -------------------
    << =*2
    >> =/2
    0000 0001 1
    0000 0010 2
    <<1 =2
    */
    

  • 拓展赋值运算符:+=、-=……

	a+=b //a=a+b
    a-=b //a=a-b
  • 条件运算符:?、:
	x?y:z //判断条件x,如果结果为true则执行y,如果结果为false则执行z
  • 运算符优先级

技术分享图片

? 优先级从高到低,优先级为1的优先级最高,优先级为14的优先级最低

包机制

  • 包机制用于区别类名的命名空间

? 语法格式为:

package pkg1[.pkg2[.pkg3...]];
  • 一般利用公司域名倒置作为包名
  • 为了使用某个包的成员,需要在程序中导入包,使用"import"语句
import package1[.package2....].(类名或*);

JavaDoc

  • javadoc命令是用来生产自己的API文档的
  • 参数信息
    • @author 作者名
    • @version 版本号
    • @since 指明需要最早使用的JDK版本
    • @param 参数名
    • @return 返回值情况
    • @throws 异常抛出情况
      使用:
javadoc 参数 java文件

Java的基础语法

原文:https://www.cnblogs.com/chenxiaoyuharuki/p/14897968.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!