Java 基础语法

Java 基础语法

注释、标识符、关键字

注释

注释并不会被执行,是写给我们写代码的人看的。书写注释是一个非常好的习惯

  • 单行注释

    //单行注释
    
  • 多行注释

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

    /** * @author yt * * */
    

标识符

标识符是赋给类、方法或変量等取的名字。一个标识符可以是字母、数字、下划线、美元符号的任意顺序组合。但不能以一个数字开始;并且也不能影java中的关键字。

标识符使用规范

  1. 当取名为多个单词的组合名字时,要采用驼峰命名法,比如: userName
  2. 类名首字母大写
  3. 変量名和方法名首字母小写
  4. 常量所以字母都大写
  5. 包名小写
  6. 工程名首字母大写
  7. java使用 Unicode标准字符集, Unicode字符集覆盖了大部分国家的“字母表”的字母;也就是说java类名変量名等可以是中文,因为中文也是 Unicode字符集中的字符;但不建议开发中用中文标识符。

Java字符集

java使用 Unicode标准字符集,最多可以识别655356个字符, Unicode字符集的前128个字符是 ASCII码表,ASCI部分字符对照表如下图所示:

我们知道计算机是只识别二进制0101,而我们平时书写代码时是写的abcd这种字符,为了让我们写的abcd这种字符转成对应的二进制,就需要一套转换的标准,也即是 Unicode字符集。

如:a->01100001,这个二进制我们可以用10进制来表示。即a->97。

Java 基础语法

关键字

在java中,有些单词具有专门的意义和用途,已经被官方所使用,不能当作一般的标识符使用,这些标识符称为保留关键字( reserved word)。

Java 基础语法

保留词(无含义但不能使用): goto, const

数据类型

Java是一种强类型的语言,所以在java中每个变量都需要有自己的数据类型(比如整数、小数等等),java的编译器会对你所赋值的数据进行相应的类型相容性检查。

举个例子:inti=5.5;此时就会报编译错误,因为int类型只能存整数,但是5.5是个小数,不能存入int类型的变量中。

Java 基础语法

整数类型

Java的整型字面常量表示有四种

  1. 十进制整数,如:1,3,12,-100
  2. 八进制整数,要以0开头,如:012->1×81+2×80,输出打印结果为10
  3. 十六进制,以0x或0X开头,如:0x12->1×161+2×160,输出打印结果为18
  4. 二进制,以0b或则0B开头,如:0b110->23+22+0+0输出打印结果为12

不同数据类型在使用时一定不能超过其范围,否则报错

例子:
byte b=128;直接编译报错,超过了byte最大范围127
short s1=30000;这里的30000实际上是int型,只是没有超出 short的存储范围
short s2=10

对于long类型字面常量建议使用L或者l结尾

例子:
long=2555555555你会发现这里编译报错,因为2555555555是int型,但是明显此数字的值已经超出了int的范围,所以报错。
long=2555555L;这样子2555555就真的是一个long类型了。

浮点数型

Java浮点型的常量描述有两种表现形式

  1. 十进制数形式,如:2.223,3.1415926,0.32

  2. 采用科学计数法(e大小写都可以)

    如:2.223e3 -> 2.223×10^3打印结果为2223.0

     123e-2 -> 123x10^-2打印结果为1.23
    

浮点数类型的默认字面常量是 double类型,所以我们在定乂 float类型时一般建议在其未尾加上F或者f,对于 doublet你也可加上D或者d来结尾

float f=12.7f:

字符类型

  1. 字节数: 2字节;

  2. 字面常量值: 单引号+单个字符,如’a’

  3. 取值范围: 我们在前面说到了java采用的是 Unicode字符集,所以也即是说char类型表示的就是 Unicode字符集中的所有字符。也即0~65535之间的所有编码

  4. 变量定义 char ch1=‘A’ char=98;

  5. 转义字符

    在Java中,允许使用反斜杠”把其后的字符转成别的含义

    例如:\n>换行,\t制表符,等同tab功能,\”字符意义上的双引号,\’字符意义上的单引号

  6. 字符串 String: 表示的是一串字符,定义时需要使用双引号”,它不是基本数据类型之一。

数据类型转换

在java程序中的每个数据都有自己的数据类型,在对这些数据进行操作时,经常会涉及到不同数据类型之间的转换。

数据类型转换按类型又分为两种:

  1. 自动转换(隐式转换)
  2. 强制转换(显示转换)

数据类型转换之前,先得了解一下,数据类型的优先级(下列从左往右优先级依次增大)

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

自动转换

自动转换:也称隐式类型转换,是指不需要书写代码,由系统自动完成的类型转换

  1. 数据类型的优先级
    byte, short, char >int> long> float> double
    例子:
    int x=10; double y=1.2; double z=x+y://其中x会自动转成 double

    但是byte, short,char这三者不管怎么组合运算得到的都是int类型数据

  2. String类型可与任何数据类型进行+的运算,只不过此时其他类型都先转成字符串,然后进行+的操作,这里操作是进行的字符串的拼接工作

    String str=“28”;int x=28; String s=str+x;//s=“2828”,其中x会先被转成字符28

  3. 布尔型和其它基本数据类型之间不能相互转换

  4. 复合赋值操作也会进行自动转换;

    例子1: short s=10;
    s=s+1;//此处会报编译错误,因为s+1是int类型

    例子2: short s1=10;
    //编译通过,此时s1+1是得到了个int,但是此时为复合赋值运算,java
    //编译器会多做一步,将得到的int转成 short
    s1+=1;

强制转换

强制转换:也称显式类型转换,是指必须书写代码オ能完成的类型转换,一般来说当我们想要将个“大范围”类型数据转成“小范围”类型时,オ会用到强转。

例子: short s=10; short x=( short)(s+1); //强制将int型转成 short型

强制转换的时候也不是可以实现任意转换的,如果使用不当,中间可能会出现一些问题

  1. 转换前的数据类型与转换后的数据类型兼容(在后面所学内容类的向下塑型体现的比较明显)

    例子: String str=“1”;int x=(int)str; //编译报错

  2. 浮点数强转整型会造成精度丢失

    例子: double d=12.4;int i=(int)d; //i=12

  3. “大范围”转“小范围”可能会造成数据溢出

    例子:int x=130; byte b=(byte)x; //b=-126

变量、常量、作用域

变量

什么是变量

  • 编程的本质就是对内存中数据的访问和修改。程序所用到的数据都会保存在内存中,程序员需要一种机制来访问或修改内存中的数据,而这种机制就是变量

变量的本质

  • 从上面的说法我们可以知道变量的本质就是一个“可操作的存储空间”,空间的位置不变但是存储在空间中的值可以改变,我们需要通过变量名来实现对该存储区域的访问,继而达到操作存储空间中的值的目的。

形象的理解: 变量相当于有名字的容器,该容器用于装载不同类型的数据。

变量的构成元素

变量作为程序中最基本存储单元,其主要由变量名,变量的类型,变量值,变量的作用域这几部分来组成。

变量的声明

格式为:type indentifier [=value] [, indentifier [=value] …];
数据类型 变量名 [=初始值] [, 变量名 [=初始值]。。。],[ ]中的内容可有可无

示例:

int i=5;(声明一个int类型的变量,变量名为i,初始化赋值为5)
double x:
int a,b;
int d=5,f=18;

注:当变量用于计算时,一定要先进行初始化斌值,否则编译报错,即inti=5这种。

注意事项

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

变量作用域

  • 类变量
  • 实例变量
  • 局部变量
public class Main {
   

    static int allClicks = 0; //类变量

    String str = "hello world!";//实例变量

    public static void main(String[] args) {
   
        int i = 0;//局部变量
    }
}

常量

常量( Constant):初始化( initialize)后不能再改变值!不会变动的值。

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

例子:

final 常量名=值;
final double PI=3. 14;

常量名一般使用大写字符

变量的命名规范

  • 所有变量、方法、类名:见名知意
  • 类成员变量:首字母小写和驼峰原则: monthSalary
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线: MAX_VALUE
  • 类名:首字母大写和驼峰原则:Man, GoodMan
  • 方法名:首字母小写和驼峰原则:run(), runRun()

运算符

Java语言支持如下运算符

  • 算术运算符:+,-,*,/,%,(二元)++,–(一元)
  • 赋值运算符:=
  • 关系运算符:>,<,>=,<=,==,!= instanceof
  • 逻辑运算符:&&,||, !
  • 位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
  • 条件运算符:?:
  • 扩展赋值运算符:+=,-=,*=,/=

++,–属于一元运算符: 计算时只需要一个操作数,操作数的值自增或自减1,其该类运算符在操作数上可前置使用,也可后置使用,结果差异很大,如下所示

**运算符前置:**int i=10;int j=++i; // j=11, i=11;前++:   ++i这整个表达式+1,本身也+1

**运算符后置:**int x=10;int y=x++;//y=10, x=11;后++:  x++整个表达式不变,x本身+1

--操作的前置和后置也是同理

位运算

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

字符串连接符 + 注意事项

int a=10;
int b=20;
System.out.println(""+a+b);//输出1020
System.out.println(a+b+"");//输出30

条件运算符

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

运算符优先级问题

优先级指java语言计算运算符的顺序。

下图列出了java中常用(未全部列出)的一些运算符的优先级关系,其中1表示优先级最高,11为最低。

Java 基础语法

总结优先级:算术运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符

包机制

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

  • 包语句的语法格式为

     package pkg1[. pkg2[. pkg3...]];
    
  • 一般利用公司域名倒置作为包名

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

    import  package pkg1[. pkg2...].(classname|*);
    

JavaDoc

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

参数信息

  • @ author作者名
  • @ version版本号
  • @ since指明需要最早使用的jdk版本
  • @ param参数名
  • @ return返回值情况
  • @ throws异常抛出情况
/** * @author yt * @version 1.0 * @since 11 */
public class Main {
   
    String name;
    /** * * @param name * @return * @throws Exception */
    public String test(String name) throws Exception{
   
        return name;
    }
}

cmd javadoc命令

javadoc -encoding UTF-8 -charset UTF-8 文件名

turn返回值情况

  • @ throws异常抛出情况
/** * @author yt * @version 1.0 * @since 11 */
public class Main {
   
    String name;
    /** * * @param name * @return * @throws Exception */
    public String test(String name) throws Exception{
   
        return name;
    }
}

cmd javadoc命令

javadoc -encoding UTF-8 -charset UTF-8 文件名

IDEA生成java项目的javaDoc文档

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/114436.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 哈希和一致性哈希算法

    哈希和一致性哈希算法哈希Hash算法介绍哈希算法也叫散列算法,不过英文单词都是Hash,简单一句话概括,就是可以把任意长度的输入信息通过算法变换成固定长度的输出信息,输出信息也就是哈希值,通常哈希值的格式是16进制或者是10进制,比如下面的使用md5哈希算法的示例md5(“123456”)=>”e10adc3949ba59abbe56e057f20f883e”主要特点:•不可逆从哈希值不能推导出原始数据,所以Hash算法广泛应用在现代密码体系中•无碰撞不同的信息进行哈希后

  • 桶排序算法c语言_哪种排序算法最快

    桶排序算法c语言_哪种排序算法最快在前几回我们已经对冒泡排序、直接插入排序、希尔排序、选择排序、快速排序、归并排序、堆排序、计数排序做了说明分析(具体详情可在公众号历史消息中查看)。本回,将对桶排序进行相关说明分析。一、排序算法系列目录说明冒泡排序(BubbleSort)插入排序(InsertionSort)希尔排序(ShellSort)选择排序(SelectionSort)快速排序(Quick…

    2022年10月23日
  • 品优购-day03笔记-完善品优购的首页&制作列表页「建议收藏」

    品优购-day03笔记-完善品优购的首页&制作列表页「建议收藏」typora-copy-images-to:media第01阶段.WEB基础:品优购-day03笔记-完善品优购的首页&制作列表页学习目标完善品优购项目的首页index.html制作品优购项目的列表页list.html品优购项目(三)第01阶段.WEB基础:品优购-day02笔记-品优购首页1.品优购首页布局命名集合:名称说明…

  • android原版开机动画,修改android开机动画

    android原版开机动画,修改android开机动画Thestatupanimationmeanstheoneyouseebeforethelauncherapplicationcomesout.Itwasalinewitharedpointgoesfromlefttorightagainandagainbefore,inAndroid1.0.Currently,oncupcak…

  • django 自定义user_tb程序化交易模型源码

    django 自定义user_tb程序化交易模型源码前言Django为我们提供了内置的User模型,不需要我们再额外定义用户模型,建立用户体系了。它的完整的路径是在django.contrib.auth.models.User。User模型源码分析

  • MySQL基础课堂笔记「建议收藏」

    MySQL基础课堂笔记「建议收藏」MySQL基础知识学习笔记整理今日内容数据库的基本概念MySQL数据库软件安装卸载配置SQL数据库的基本概念1.数据库的英文单词:DataBase简称:DB2.什么数据库? *用于存储和管理数据的仓库。3.数据库的特点: 1.持久化存储数据的。其实数据库就是一个文件系统 2.方便存储和管理数据 3.使用了统一的方式操作数据库…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号