java学习笔记(1)中说过了java的一些基础知识,发展史,特点,编译和运行过程,配置环境变量等,接下来开始介绍java的语法等只是点

 关于java源程序中的注释

  *什么是注释?注释的作用是什么?

    -出现在java源程序当中,是对java源代码的解释说明。

    -注释不会被编译到.class字节码文件当中。

    -一个号的开发习惯,应该是多编写注释。这样程序的可读性增强。

  *java的注释怎么写呢?

    -单行注释

      //单行注释,只注释当前行

    -多行注释

      /*

        多行注释

        多行注释

        ...

      */

    -javadoc注释(比较专业的注释,可以用javadoc命令生成说明文档,这个命令也是在JDK的bin目录下)

      /**

      * javadoc注释

      * javadoc注释,同样是多行注释

      */

下面来试一试,我是用vscode编写的代码,将HelloWorld.java程序用注释说明一下

// public 表示公开的
// class 表示定义一个类
// HelloWorld 表示一个类名
public class HelloWorld{//表示定义一个公开的类名为HelloWorld类
// 类里面的内容叫作【类体】,记住
// 类体中不能直接编写java语句【除了生命变量之外】
// System.out.println("Hello, world!");//这个地方打开注释,编译就通不过
/*
public表示公开的
static表示静态的
void表示空
main表示方法名是main
(String[] args)是main方法的形式参数列表
需要记住的是,以下的方法是一个程序的主方法,是一个程序的入口,主方法以main命名
这是SUN公司规定的写法,不这么写程序进不来!!
*/
public static void main(String[] args) {//表示定义一个公开的静态的主方法,返回值是空
// 方法里的内容叫作方法体 // 下面的语句叫java语句
// java语句【java语句以";"结尾,分号必须是半角分号】
// 先记住以下代码的意思是,向控制台输出一段字符串
// 以下双引号必须是半角的双引号【这是java语法都的一部分】
// java中所有的字符串都使用双引号括起来,记住不能是单引号
System.out.println("Hello, world!");
// 再向控制台输出消息
System.out.println("Hello,jackson!");
// 输出中文
System.out.println("您好,杰克!");
// 输出中文【提示,以下程序员两边的双引号是全角的】
System.out.println("我是一个“程序员”");
}
}

然后编译时报错了,

出现这样的错误,一般是因为代码中含有中文字符,注释中的中文字符也算。由于使用CMD运行java程序的时候,系统默认的编码格式是gbk。而包含中文字符的代码一般是UNICODE格式,所以直接运行含有中文字符的代码就很容易出现编码错误。

第一种解决办法,用这个命令编译:javac -encoding UTF-8 HelloWorld.java

第二种办法,用nodepad++或editplus将编码转化为UTF-8编码格式

刚才没注意到

我的vscode是用的UTF-8 with BOM编码格式,忙活了半天,最后右键这点选择为UTF-8格式即可

不过编译命令还是的使用:javac -encoding UTF-8 ./HelloWorld.java

然后让程序运行一下:java HelloWorld

ok正常!!!

另外注意类体中不能直接编写java语句,除声明变量之外

接下来我们重新建一个K.java文件

里面用class创建了B、X、Y、Z这几个类

然后执行javac ./K.java

然后会把B、X、Y、Z这几个类编译出来

那么public class和class的区别是什么呢?

public class和class的区别

  *一个java源文件当中可以定义多个class

  *一个java源文件当中public的class不是必须要有的

  *一个class会对应生成xxx.class字节码文件

  *一个java源文件当中定义公开的类的话,public的class只能有一个,并且该类名称必须和java源文件名称一致

  *每一个class当中都可以编写main方法,都可以设定程序的入口,想指向B.class中的main方法,执行java B即可,依此类推

  *当在命令窗口中执行java Hello,那么要求Hello.class当中必须有主方法,若没有主方法,会出现运行阶段的错误,报错是,该类中没有主方法

 例子:

class B{
public static void main(String[] args){
System.out.println("B`s main method invoke!");
}
}
class X{
public static void main(String[] args){
System.out.println("X`s main method invoke!");
}
}
class Y{
public static void main(String[] args){
System.out.println("Y`s main method invoke!");
}
}
class Z{
public static void main(String[] args){
System.out.println("Z`s main method invoke!");
}
}
public class K{
public static void main(String[] args){
System.out.println("K`s main method invoke!");
}
}

 标识符

/*
关于java语言中的标识符
1、什么是标识符?
-在java源程序当中,凡是程序员有权利自己命名的单词都是标识符
-标识符在EditPlus编辑器当中以黑色字体高亮显示
-标识符可以标识什么元素呢?
*类名
*方法名
*变量名
*接口名
*常量名
......
2、标识符的命名规则?【不按照这个规则来,编译器会报错,这是语法】
*一个合法的标识符只能由数字、字母、下划线_、美元符号$组成,不能含有其它的符号
*不能以数字开头
*严格区分大小写
*关键字不能做标识符
*理论上无长度限制,但是最好不要太长
3、标识符的命名规范?【只是一种规范,不属于语法,不遵守规范,编译器不会报错】
*最好见名知意
例如:
public class UserService{
public void login(String username,String password){
}
}
*遵守驼峰命名方式
例如:
SystemService
UserService
CustomeService
*类名、接口名:首字母大写,后面每个单词首字母大写
*变量、方法名:首字母小写,后面每个单词首字母大写
*常量名全部大写
java语言汇总常见的关键字
public class static void if for while do default byte short int long
float double boolean char private protected switch true false throw
throws try catch...
*/
public class IdentifierTest01{//IdetifierTest01是一个类名,名字可以修改
//main是一个方法名
public static void main(String[] args){//args是一个变量名
System.out.println("")
}
// doSome就是方法名
public static void doSome(){
// i就是变量名
int i = 10;
}
}

 字面值

/*
关于字面值
*字面值:
-10、100
-"abc"
-'a'
-true
-false
*字面值就是数据。
*字面值是java源程序的组成部分之一,包括关键字和标识符他们都是java源程序的组成部分。
*数据在现实世界当中是分门别类的,所以数据在计算机编程语言当中也是有类型的。【数据类型】
-10、100属于整数型字面值
-3.14属于浮点型字面值
-true、false属于布尔型字面值
-"abc"、"中国人"属于字符串型字面值
-'a'、'人'属于字符型字面值
*注意:java语言当中所有的字符串型字面值必须使用""双引号括起来,双引号是半角(英文状态下的双引号)
*java语言当中所有的字符型字面值必须使用''单引号括起来,单引号是半角
*/
public class ConstTest01{
public static void main(String[] args){
System.out.println("abc");
System.out.println("最近您过的怎么样?");
System.out.println(10);
System.out.println(100);
System.out.println(false);
System.out.println(true);
System.out.println('A');//注意单引号是字符型字面值
System.out.println(3.14);
// 下面会编译报错,因为单引号中只能存放单个字符,属于字符型字面值
// System.out.println('ABC');
}
}

 变量

/*
关于java语言当中的变量:
1、什么是变量?
*变量本质上来说是内存中的一块空间,这块空间有数据类型、有名字、有字面值。
*变量分为三部分:数据类型、名字、字面值【数据】。
*变量是内存中存储数据的最基本的单元。
2、数据类型的作用?
*不同的数据有不同的类型,不同的数据类型底层会分配不同大小的内存空间。
*数据类型是指导程序在运行阶段应该分配多大的内存空间。
3、变量要求:变量中存储的具体的"数据"必须和变量的"数据类型"一致。当不一致的时候编译报错。
4、声明/定义变量的语法格式:
数据类型 变量名;
*数据类型:比如说 int是整数型
*变量名:只要是合法的标识符就行。规范中要求,首字母小写,后面的单词首字母大写。
例如:
int i;
int age;
int size;
int length;
int num;
其中int是数据类型,i、age、size、length、num都是变量名。
5、变量声明之后,怎么赋值?
变量名 = 字面值;
要求:字面值的数据类型必须和变量的数据类型一致。
= 等号,是一个运算符,叫作赋值运算符,赋值运算符先运算等号右边的表达式,表达式
执行结束之后的结果赋值给等号左边的变量。
6、声明和赋值可以放到一起完成。
int i = 10;
7、变量赋值之后,可以重新赋值,变量的值可变化。
int i = 10;
System.out.println(i);//10
i = 20;
System.out.println(i);//20
i = 100;
System.out.println(i);//100
8、有了变量的概念之后,内存空间得到重复的使用。
9、通常访问一个变量包括两种访问方式:
*第一种:读取变量中保存的具体数据。(get方式/获取)
*第二种:修改变量中保存的具体数据。(set方式/设置)
i = 20;//set
System.out.println(i);//get
10、变量在一行上可以声明多个。
int a,b,c;
11、java中的变量必须先声明并且赋值后才能访问。
int i;程序执行到这里,内存空间并没有开辟出来,变量i并没有初始化。
所以没有赋值之前变量是无法访问的。
*/
public class VarTest01{
public static void main(String[] args){
//声明一个int类型的变量,起名i
int i;
// 编译报错:变量i并没有初始化。
// 在java当中变量必须先声明再赋值之后才能访问。声明但没赋值的情况下无法访问,编译会报错。
// System.out.println(i);
i = 100;//给i变量赋值,i变量在这里完成初始化,内存开辟。
System.out.println(i);
// i再次重新赋值
i = 200;
System.out.println(i);
}
}
/*
关于java语言中的变量:
1、方法体中的java代码,是遵守自上而下的顺序依次执行的,逐行执行。
第一行;
第二行;
第三行;
特点:上一行的程序不结束,下一行永远不会执行。
2、在同一个"作用域"当中,变量名不能重名。但是变量可以重新赋值。
*/ public class VarTest02{
public static void main(String[] args){
int i = 100;
System.out.println(i);//
i = 200;
System.out.println(i);//200 //以下代码顺序执行有错误,应该先声明赋值再访问。
// System.out.println(k);
// int k = 300; //以下代码重复声明相同类型,相同名字的变量,在java中是不允许的,要和javascript区别开
// int i = 90;
// System.out.println(i);
}
}
/*
关于java中的变量:
变量的作用域:
1、什么是作用域?
变量的作用域,其实描述的就是变量的作用域范围。
在上面范围之内是可以被访问的,只要出了这个范围该变量就无法访问了。
2、变量的作用域只要记住一句话:
出了大括号就不认识了。 */ public class VarTest03{
// 注意:这里的static不要去掉
static int k = 90;
public static void main(String[] args){
// 变量i的作用域是main方法
// 在整个main方法当中是有效的,可见的,可访问的
int i = 100; System.out.println(i);//
System.out.println(k);//可以访问k 90 // 以下会编写一个for循环语句
// 这个for循环后面的控制语句,后面再说。
for(int a=0;a<10;a++){//a变量的作用域是整个for循环,循环结束后,a变量的内存就释放了 }
// 这里访问不了a变量
// System.out.println(a); int j;//j变量的作用域是main方法,不是for循环
for(j=0;j<10;j++){ }
System.out.println(j);//
} public static void dosome(){
// 这里无法访问main方法当中的变量i
// 已经出了i变量的作用域
// System.out.println(i); // 可以访问k
System.out.println(k);
}
}
/*
关于变量的分类:
根据变量声明的位置来分类:
*局部变量
-在方法体当中声明的变量叫作局部变量。
*成员变量
-在方法体外【类体内】声明的变量叫作成员变量。
在不同的作用域当中,作用域是可以一样的。
在同一个作用域当中,变量名不能重名。
*/ public class VarTest04{
// 成员变量
int k = 200; // 主方法入口
public static void main(String[] args){
// i是局部变量
// int i = 10;
// java遵循就近原则
System.out.println(i);//
} //这属于成员变量 去掉static之后 main中就访问不到类体中的i变量了
static int i = 100;
// 类体汇总不能直接编写java语句【除了声明变量之外】
// System.out.println(i);
// dosome方法
public static void dosome(){
// 局部变量
int i = 90;
}
}

java学习笔记(2)注释、public lcass、class、标识符、字面值、变量的更多相关文章

  1. JAVA学习笔记:注释、变量的声明和定义、

    本文内容: 注释 变量的声明和定义 成员变量和局部变量 首发时间:2018-03-16 15:59 注释: 单行注释:// 多行注释:/* - */ 变量: 变量是内存中的一个存储区域,变量的定义就是 ...

  2. 0035 Java学习笔记-注解

    什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...

  3. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

  4. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  5. Java学习笔记4

    Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...

  6. java学习笔记11--Annotation

    java学习笔记11--Annotation Annotation:在JDK1.5之后增加的一个新特性,这种特性被称为元数据特性,在JDK1.5之后称为注释,即:使用注释的方式加入一些程序的信息. j ...

  7. java学习笔记之基础篇

    java选择语句之switch   //switch可以用于等值判断 switch (e) //int ,或则可以自动转化成int 的类型,(byte char short)枚举jdk 7中可以防止字 ...

  8. java学习笔记之OOP(二)

    java学习笔记二.面向对象[OOP]Object Oriented Programming 一.三大特性: 1.封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式,将变化隔离,便于使用,提高复用 ...

  9. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

随机推荐

  1. 转 如何在调用WCF服务之前弹出一个确认对话框

    自定义InteractiveChannelInitializer(InvocationConfirmationInteractiveChannelInitializer)定义如下.我们在BeginDi ...

  2. BUAA_OO第四单元总结性博客作业——UML(Floyd实现规则检查?)

    一.架构设计 1.UML第一次作业——类图 第一次作业基于不同element在UML规格中的从属关系来设计架构.继承了UmlInteraction接口的MyUmlInteraction类是主要的交互层 ...

  3. mac 上使用 idea 上传项目代码到阿里云git上

    1.Idea 打开需要上传的项目   2.先在本地创建一个git仓库 VCS --> Import into Version Control --> Create Git reposito ...

  4. webpack---eslint-loader学习随笔

    第一步.在项目内安装: npm i -D eslint eslint-loader . 第二步.webpack的配置loader 注意loader的顺序,需先执行eslint-loader. 第三步. ...

  5. [SOLVED] “Error 1067: The process terminated unexpectedly” on Windows 10, 7 & 8

    Windows background services enable Windows features function properly. If some errors happen to serv ...

  6. 蓝牙 BLE 三种 UUID 格式转换

    蓝牙广播中对服务 UUID 格式定义都有三种 16 bit UUID.32 bit UUID.128 bit UUID. 但是熟悉安卓开发的小伙伴都知道接口都 UUID 格式,fromString 时 ...

  7. mysql 的使用

    1. 安装 https://dev.mysql.com/downloads/mysql/ 2. 配置 $ vim ~/.bash_profile $ export PATH=$PATH:/usr/lo ...

  8. centos 7 安装webmin

    wget http://prdownloads.sourceforge.net/webadmin/webmin-1.930-1.noarch.rpm yum -y install perl perl- ...

  9. SpringBoot返回date日期格式化

    SpringBoot返回date日期格式化,解决返回为TIMESTAMP时间戳格式或8小时时间差 问题描述 在Spring Boot项目中,使用@RestController注解,返回的java对象中 ...

  10. 【HCIA Gauss】学习汇总-数据库管理-2

    数据库管理目标:稳定 安全 数据一致性 系统高性能 数据库管理员 数据库管理范围 :数据库管理对象1.物理设计工作 2.物理实现工作 对象是指 :数据库里 存储和指向数据的各种概念和结构的总称 对象管 ...