首页 > 编程语言 >Java的基础语法

Java的基础语法

时间:2024-05-15 10:31:26浏览次数:21  
标签:Java 变量 int 基础 System 语法 类型 println out

Java的基础语法

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

Java中的注释有三种,注释并不会被执行,是给人看的。

单行注释

//注释文字

只能够注释一行。

多行注释

/*

多行注释文字

*/

能够注释一段文字。

文档注释

/**

*abcd

*aaaa

*/

和JavaDoc结合使用

标识符

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

注意点

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

关键词

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 strictfp short static super
switch synchronized this throw throws
transient try void volatile while

2、数据类型

强类型语言

要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。(更安全,速度相对比较慢)

Java

弱类型语言

对变量使用相对的没有那么严格的规定。

VBS,JS

Java的数据类型分为两大类

  1. 基本数据类型又被称为值类型,包括6种数字类型(byte 1个字节范围、short 2个字节范围、int 4个字节范围、long 8个字节范围,数字结尾加上L、float 4个字节范围,数字结尾加上F、double 8个字节范围)、1种字符型(char 2个字节范围)和1种布尔型(boolean)。
  2. 引用数据类型包括类(Class)、接口(Interface)、数组(Array)等。

注意事项

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

  • 变量名必须是合法的标识符。

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

扩展内容

  • 整数拓展:进制 二进制0b 十进制 八进制0 十六进制0x

    int i = 10;
    int i2 = 010;//八进制以0开头
    int i3 = 0x10;//十六进制以0x开头 0~9  A~F
    
    

    以上内容打印出来的结果为10,8,16

  • 浮点数拓展:在处理银行业务的时候浮点数不能用float和double直接运算

    float f = 0.1f;
    double d = 1.0/10;
    
    System.out.println(f);//结果为0.1
    System.out.println(d);//结果为0.1
    System.out.println(f==d);//结果为false
    
    float d1 = 23131312312312313f;
    float d2 = d1 + 1;
    System.out.println(d1==d2);//结果为true
    

    浮点数是有限和离散的存在舍入误差,最好完全避免使用浮点数进行比较!银行业务使用BigDecimal类来进行标识运算。

  • 字符拓展

    char c1 = 'a';
    char c2 = '中';
    System.out.println(c1);//结果为a
    System.out.println((int)c1);//(int)强制转换为int类型,结果为97
    System.out.println(c2);//结果为'中'
    System.out.println((int)c2);//(int)强制转换为int类型,结果为20013
    char c3 = '\u0061';//16进制的
    System.out.println(c3);//结果为a
    

    所有的字符本质还是数字。

    //char编码 Unicode 2字节 65536

    转义字符:\t 制表符 \n换行......

    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
    
  • 布尔值扩展

    boolean flag = true;
    if (flag==true){}//新手
    if (flag){}//老手,这两个表示方式是完全一样的。代码要精简易读,所以推荐这种写法。
    

3、类型转换

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

    int i = 128;
    byte b = (byte)i;//强制转换为byte类型  高-->低
    double x = i;//低-->高自动转换。
    
    System.out.println(i);//结果为128
    System.out.println(b);//结果为-128
    

    出现以上问题的原因是byte类型的最大值是127,将i强制转换成byte时出现了内存溢出的问题,导致值变样。所以转换的时候要避免出现这种情况。

    从高位类型转为低位类型需要只用强制转换,语法为: (类型)变量名 ; 高--->低

    从低位类型转为高位类型是自动转换的 低--->高

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

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

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

    注意点

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

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

    3. 在把高容量转换倒低容量的时候,强制转换

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

    5. 数字之间可以用下划线分割

      int money = 10_0000_0000;
      System.out.println(money);//结果为1000000000是JDK7的新特性方便识别大数字。
      int years = 20;
      int total = money*years;//结果-1474836480,计算的时候溢出了。
      long total2 = money*years;//结果-1474836480,还是溢出了。原因是两个值都是int类型所以他们的结果默认为int类型,得出结果后再转换为long的类型。
      long total3 = money*((long)years);//要避免上面这种情况,要先将years转变为long类型再进行计算。
      System.out.println(total3);//结果为2000000000
          
      

4、变量、常量

变量

变量是什么:就是可以变化的量!

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

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

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

注意事项

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

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

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

变量作用域

  • 类变量

    在方法外,类中。

    从属于类,随类出现,随类消失。

    static 后面的变量,在方法中可以直接使用。

  • 实例变量

    在方法外,类中。

    从属于对象,如果不自行初始化,就会是这个类型的默认值,数值类型的默认值为0或者0.0,布尔值默认为false,除了基本类型其他默认值都是null。

  • 局部变量

    生命周期中只在方法内有效

    局部变量必须声明和初始化

public class Variable{
    static int allClicks=0;//类变量
    String str = "hello World";//实例变量
    
    public void method(){
        int i = 0;//局部变量
        Variable var = new Variable() ;//变量类型 变量名字 = new Variable()这样这样就可以使用其中的实例变量了
        
    }
}

常量

初始化后不能再改变值!不会变动的值。

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

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

常量名一般使用大写字符

变量的命名规范

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

类成员变量:首字母小写和驼峰原则:monthSalary

局部变量:首字母小写和驼峰原则

常量:大写字母和下划线:MAX_VALUE

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

方法名:首字母小写和驼峰原则

5、运算符

Java语言支持如下运算符:

  • 算术运算符: + , - , * ,/ , % , ++(自增运算符) , --(自减运算符)
  • 赋值运算符: =
  • 关系运算符: > , < , >= , <= , == , !=instanceof
  • 逻辑运算符: && , || , !
  • 位运算符: & , | , ^ , ~ , >>(右移) , <<(左移) , >>>(了解!!!)
  • 条件运算符: ?:
  • 扩展赋值运算符: += , -= , *= , /=
int a = 3;
int b = a++;//执行完这行程序后,先给b赋值,再自增
int c = ++a;//执行这行代码前,先给a自增,再给c赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);

很多其他运算我们会使用工具类进行运算,比如幂运算Math.pow(底数,幂)

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

2*8如何运算最快
*/
System.out.println(2<<3);//结果为16
/*
0000 0000      0
0000 0001      1
0000 0010      2
0000 0011      3
0000 0100      4
0000 1000      8
0001 0000      16
所以在位运算中将2向左移动3为值为16
在位运算中左移<<相当于*2
在位运算中右移<<相当于/2
位运算优势效率极高
*/

字符串连接符 + ,如果两侧出现String类型则所有类型都会转成String类型然后再连接起来

int a = 10;
int b = 20;
a+=b;//a = a+b
a-=b;//a = a-b
System.out.println(a);
//字符串连接符 +,String
System.out.println(""+a+b);结果为1020
System.out.println(a+b+"");结果为30

三元运算符

x?y:z //如果x==true,则结果为有,否则结果为z

int score = 50;
String type = score<60?"不及格":"及格";
System.out.println(type);结果为不及格

6、包机制、JavaDoc

包机制

为了更好的组织类,Java提供了包机制,用于区别类名的命名空间。

包语句的语法格式为:

package pkg1[. pkg2[. pkg3...]]

一般利用公司域名倒置作为包名;例:baidu.com 包名定义就是com.baidu。没有硬性规定

为了能够使用某一个报的成员,我们需要在Java程序中明确导入该包。使用“import”语句可完成此功能

import package1[.package2...].(classname|*);

定义类名时尽量不要让包里面的类名重名。

JavaDoc

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

JDK8官方帮助文档

/**
*@author  作者
*@version 1.0
*@since 1.8
*/

使用IDEA在类中写JavaDoc输入/**会自动弹出部分需要注释的参数。

加在类上面就是类的注释

加载方法上面就是方法的注释

在javadoc中的参数信息

  • @author 作者名

  • @version 版本号

  • @since 指明需要最早使用的jdk版本

  • @param 参数名

  • @return 返回值信息

  • @throws 异常抛出情况

使用终端生产javadoc

在使用了javadoc注释的包下开启终端,输入
javadoc -encoding UTF-8 -charset UTF-8 代码文件名.java(-encoding UTF-8 -charset UTF-8这段命令用来编译文档成UTF-8格式的,方便中文显示)
可以在文件夹中生成index.html,点开这个文档会出现和官方文档类似的api文档。

使用IDEA生产javadoc

  1. 选中需要生成javadoc的包
  2. 点击顶部工具(Tools)菜单,并选择生成javadoc(Generate JavaDoc)这个选项
  3. 然后会弹出一个界面,然后在输出目录(Output directory )输入框后面的按钮点击进去选择我们刚才创建的文件夹(JavaDoc),然后在区域设置(locale框)里填写zh_CN,意思是这个代表的就是中文,输完之后在下面的其他命令行式参框(Other command line arguments:)中输入下面这行编码-encoding utf-8 -charset utf-8,意思是用预先规定的方法将文字、数字或其它对象编成数码,或将信息、数据转换成规定的电脉冲信号。
  4. 点击确认

标签:Java,变量,int,基础,System,语法,类型,println,out
From: https://www.cnblogs.com/mayan-study/p/18193303

相关文章

  • CPLEX 初识 -- JAVA实现
    CPLEX初识--JAVA实现本文参考《运筹优化常用模型、算法及案例实战》,同时也是笔者用来记录自己所学知识,如有问题欢迎交流讨论~1环境配置&模型建立需要装配jar包及配置VMoptions,如下图所示:-Djava.library.path="/Applications/CPLEX_Studio2211/java"一般使用IloCple......
  • JAVA爬虫使用Selenium自动翻页
    关于Maven<dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.15.3</version></dependency><dependency><groupId>org.seleniumhq.selenium</groupId>......
  • 脚本库语法提示支持,Fast Request 2024.1.5 发布
    FastRequest 是一个类似于Postman的IDEA插件。它是一个强大的restfulapi工具包插件,可以根据已有的方法帮助您快速、自动生成url和params。RestfulFastRequest=API调试工具+API管理工具+API搜索工具。它有一个漂亮的界面来完成请求、检查服务器响应、存储......
  • 面试题-JAVA基础
    JAVA有几种基本数据类型,各种类型占用字节大小?64位JVM中,int的长度是多数?Java的Integer缓存池大小是多少?Java中应该使用什么数据类型来描述价格?什么是装箱和拆箱?Java中的值传递和引用传递有什么区别?java8和java9的String类型的区别String,StringBuilder,StringBuffer区别......
  • 动态规划基础
    动态规划基础某一问题有很多重叠子问题,使用动态规划是最有效的。动态规划中每一个状态是从上一个状态推导出来的。与贪心不同,贪心没有状态推导,从局部中直接选取最优解。动态规划五部曲:确定dp数组以及下标的含义确定递推公式dp数组的初始化确定遍历顺序举例推导dp数组exa......
  • 【JavaWeb】前后端分离SpringBoot项目快速排错指南
    1发起业务请求打开浏览器开发者工具,同时显示网络(Internet)和控制台(console)接着,清空控制台和网络的内容,如下图然后,点击你的业务按钮,发起请求。首先看控制台有没有报错信息,这是最直观的,看不懂英文就去翻译一下,百度一下如果控制台的信息并没有什么价值,或者指明是后端的问题,那么......
  • java poi之XWPFDocument读取word内容并创建新的word(获取表格所有图片)
    Poi的Word文档结构介绍1、poi之word文档结构介绍之正文段落一个文档包含多个段落,一个段落包含多个Runs,一个Runs包含多个Run,Run是文档的最小单元获取所有段落:Listparagraphs=word.getParagraphs();获取一个段落中的所有Runs:ListxwpfRuns=xwpfParagraph.getRuns();获取......
  • 2-HTML语法规范和基本结构
    基本语法概述HTML标签是由尖括号包围的关键字,例如<html>。HTML标签通常是成对出现的,例如<html>和</html>,我们称为双标签。标签对中第一个是开始标签,第二个是结束标签。有些特殊的标签必须是单个标签,例如<br/>,我们称为单标签。标签关系包含关系点击查看代码<body>......
  • 统计力学中的概率论基础(二)
    技术背景接上一篇文章,我们继续记录统计力学中的一些基础的概率论知识。这一篇文章主要介绍的是一些常用的概率密度函数的对应参数计算,如期望值、方差等。伯努利分布在离散分布中,最简单的分布为伯努利(Bernoulli)分布,也叫0-1分布。伯努利分布的随机变量就跟抛硬币一样只有两种:0(失......
  • Java面试题 - Java基础
    参考教程【本文参考自以下文章,部分图片及代码片段也取自以下文章,如果构成侵权,请联系我进行修改/删除】【如果构成侵权,请联系我进行修改/删除】【如果构成侵权,请联系我进行修改/删除】【如果构成侵权,请联系我进行修改/删除】自学精灵-首页(本文几乎所有的内容都是自学精灵上......