java基础语法

1.注释

注释可以增强代码的可读性,让自己或者他人快速的理解代码含义和设计思路,同时可以便于后期的对 系统中代码的维护和迭代升级等。

Java源码代码中的注释,不会出现在字节码文件中

单行 //

多行 /* */(不能嵌套)

文档

/**

*@author:作者

*@version:版本

*@deprecated:不推荐使用的方法、过时的方法。

*@param:方法的参数类型。

*@return:方法的返回类型。

*@see:用于指定参考的内容。

*@exception:抛出的异常。

*@throws:抛出的异常,和exception同义

*/

使用javadoc命令,根据Comment03中的文档注释和标记,生成API说明文档,并将生成的文档存放在API 目录中:

javadoc -d api src/Comment03.java

如果要显示作者和版本的话,需要加上-author和-version选项,前提是代码中使用@author @version 俩个标记

javadoc -d api -author -version src/Comment03.java

在Windows中,如果出现了中文乱码,可以加入-encoding UTF-8

javadoc -d api -author -version -encoding UTF-8 src/Comment03.java

Windows中,命令窗口默认使用编码是GBK(中文版Windows)

Linux中,命令窗口默认使用编码是UTF-8
在方法里面写文档注释编译与运行没有错,但是不会导出到文档。

只会在类外面和方法外面

/**

会导出

*/

class solution(){

/**

会导出

*/

​ public static void main (String args[]){

/**

不会导出

*/

}

}

分号(一段代码结束以后要加)
jar打包

jar命令(将class文件打包)

  1. 把当前目录中的Hello.class打到hello.jar这个jar包中

    jar -cvf hello.jar Hello.class

  2. 把当前目录下的Hello.class 以及 World.class打到hello.jar这个jar包中

    jar -cvf hello.jar Hello.class Word.class

  3. 把当前目录下的所有的class打到hello.jar这个jar包中

    jar -cvf hello.jar *.class

  4. 把当前目录下的bin文件夹里面的所有文件打到这个jar包中,同时【包含】bin目录本身

    jar -cvf hello.jar bin

  5. 把当前目录下的bin文件夹里面的所有文件打到这个jar包中,但是【不包含】bin目录本身

    jar -cvf hello.jar -C bin .

    -C bin表示切换到bin目录下执行这个命令,注意bin后的那个点 (.)

把当前目录下的bin文件夹里面的所有文件打到这个jar包中,

但是【不包含】bin目录本身

jar -cvf hello.jar -C bin .

这时候这个jar是一个普通的jar,不能直接java -jar的方式进行运行:

原因是因为没有在jar中指定哪一个类中有程序的入口,需要修改jar中的配置: Main-Class: com.briup.Hello

注意,冒号(:)后面有一个空格,这个是必须的,没有的话报错。

报错这个修改过的文件(ctrl+s),Ubuntu中的解压缩工具会提示我们文件已经修改,是否更新,点击 确定就可以了,

然后就可以命令窗口中,再运行: java -jar hello.jar

类加载器

在java中,负责把class文件加载到内存的是类加载器(ClassLoader)

jvm启动之后:

启动类加载器 bootstrapClassLoader,非java语言实现

作用:加载指定路径中jar里面的class文件

路径1:C:\Program Files\Java\jdk1.8.0_74\jre\lib\

路径2:C:\Program Files\Java\jdk1.8.0_74\jre\classes\ ( 如果有这个目录的话)

例如:rt.jar

扩展类加载器 ExtClassLoader,java语言实现,

是ClassLoader类型的对象

作用:加载指定路径中jar里面的class文件( 只能是jar中存在的class)

路径:C:\Program Files\Java\jdk1.8.0_74\jre\lib\ext\

例如:ext中默认存在的jar,或者用户放到ext目录下的jar包

应用类加载器 AppClassLoader,java语言实现,是ClassLoader类型的对象

作用:加载指定路径中class文件或者jar里面的class文件

路径:CLASSPATH中配置路径,这个是用户自己配置的

例如:.:bin:hello.jar

双亲委托机制

作为了解的内容 多个类加载器之间共同协作,

然后把需要使用或运行的类加载到内存去执行,它们直接共同合作的方式就是双亲委托机制。

例如:java com.briup.test.Hello 命令

现在要加载Hello.class文件中的类

首先加载任务就交给了AppClassLoader

然后AppClassLoader把这个任务委托给自己的父加载器,

也就是ExtClassLoader

然后ExtClassLoader把这个任务委托给自己的父加载器,

也就是bootstrapClassLoader

然后bootstrapClassLoader就尝试去加载Hello这个类,

但是在指定路径下并没有找到

然后任务又交回给了ExtClassLoader,

ExtClassLoader尝试加载Hello这个类,

但是在指定路径中没找到

然后任务又交回给了AppClassLoader

最后AppClassLoader从CLASSPATH中指定的路径里面找到并加载了这个Hello类,完成类加载的过程

类加载经过字节码验证,虚拟机版本不同会不兼容

(JVM规范校验)和代码逻辑校验

标识符起名规则:::::

命名规则

标示符可以由字母、数字、下划线_ 、美元符号$组成

标示符开头不能是数字

标识符中的字符大小写敏感

标识符的长度没有限制

标示符不能使用java中的关键字或保留字

类和接口,首字母大写,如果是俩个单词,第二个单词的首字母大写

例如,public class Account{} ,public interface AccountBase{}

方法和变量,首字母小写,如果是俩个单词,第二个单词的首字母大写

例如,public void getStudentName(){} , int personNum = 1;

常量,全部字母大写,如果是俩个单词,使用下划线分隔

例如,public static final int MAX_NUM = 10;

尽量使用有意义的名字,尽量做到见名知义。

例如,int numOfStudnet = 10; String userName = “tom”;

数据类型

基本的数据类型

byte short int long float double char boolean

byte:每8个位 (bit)组成一个字节(Byte),

所以,1个字节=8位0101代码,

例如 0000 0001

例如,0000 0001 ,表示二进制的数字1,它是1个字节,共8位0101代码组成

boolean:不能用0和1,必须用true和false

char:

***char类型占2个字节(16位)***,用来表示字符,是基本数据类型,

String表示字符串,是类类型。

一个String是由0~n个char组成

例如,字符使用单引号表示,字符串使用双引号表示。

引用的数据类型

字符编码

Java语言对文本字符采用Unicode编码。由于计算机内存只能存取二进制数据,因此必须为各个字符进 行编码。 例如:a --编码–> 0000 0000 0110 0001

char值 (重点)

例如,字符’a’,的表示形式:

二进制数据形式为 0000 0000 0110 0001

十六进制数据形式为 0x0061

十进制数据形式为 97

//使用具体字符来表示a

char c = ‘a’;

//使用Unicode编码值表示字符a

char c = ‘\u0061’;

//0x开头的数字位十六进制,使用十六进制表示字符a

char c = 0x0061;

//使用十进制数字表示字符a char c = 97;

//0开头的数字为八进制,使用八进制表示字符a

char c = 0141;

//注意:一个中文汉字就是一个字符

char c = ‘中’;

5.3.4 转义字符

在给字符变量赋值的时候,

通常直接从键盘输入特定的字符,

而不会使用Unicode字符编码,因为很难记住各种字符的Unicode字符编码值。

但是对于有些特殊字符,比如一个单引号(’),如不知道它的Unicode字符编码,直接从键盘输入编译

//编译出错 char c = ‘’’;

//为了解决这个问题,可采用转义字符(\)来表示单引号和其他特殊字符:

char c = ‘’’; char c = ‘\’;

\n 换行符,将光标定位到下一行的开头

\r 回车,把光标移动到行首(和环境有关)

\t 垂直制表符,将光标移到下一个制表符的位置

\ 反斜杠字符 ’ 单引号字符 " 双引号字符

整型(默认为int)

byte8位

short16位

int32位

long64位

0开头 八进制 0x开头 十六进制 0b开头 二进制

long类型后面要加L long a1 = 1L;

浮点型

float 32位 1符号位 8指数位 23尾数位

double 64位 1符号位 11指数位 52尾数位

保证精度用BigDecimal类

变量

java中的数据类型有八种基本类型,三种引用类型

八种基本类型:byte、short、int、long、float、double、boolean、char

三种引用类型:类类型、接口类型、数组类型

对象

computer

​ 品牌 颜色 材质 价格 cpu 显卡 内存 磁盘

对象一般都会具有一些属性和方法

属性表示对象本身的一些特点

方法表示对象本身的一些行为

例如, 学生有身高、体重等属性,

学生还有学习、运动等方法

老师有年龄、专业等属性,

老师还有上课、布置作业等方法

教室有位置、大小等属性,

教室还有添加学生、添加老师等方法

使用八种基本类型中的任意一种类型,声明出的变量,就是基本类型变量,

例如 int a;

使用三种引用类型中的任意一种类型,声明出的变量,就是引用类型变量,

例如 Student stu;

基本类型变量和引用类型变量的区别:

基本类型变量只能接收基本类型数据,它是一种比较简单的数据,没有属性,也没有方法

引用类型变量只能接收引用类型数据(也就是对象),但对象是一种比较复杂的数据,它里面可 以有很多属性,也可以有很多方法

引用类型变量,简称为引用,它可以用来接收对象,也叫做引用指向对象。

可以看出: 基本类型变量只能接收基本类型数据,只能表示最简单数字(8/16/32/64位) 引用类型变量只能接收引用类型数据(对象),可以访问属性、调用方法,完成比复杂的功能

基本类型变量和引用类型的变量核心区别:是否可以指向对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值