JAVA 基础
桃花键神 人气:0java程序基本结构
java程序的源码文件是Xxx.java,Xxx代码类名和文件名一致(一般要求首字母大写,从第二个单词首字母大写。
新建一个类,类名User
class User{ }
新建一个User类,执行代码在控制台打印出"hello 中国"的效果
class User{ public static void main(String[] arg){ System.out.print("hello 中国"); } }
javac User.java 意思是编译User.java文件,-encoding utf-8是设置字符集防止乱码。java User是执行编译后的文件
程序注释
单行注释:
// 单行注释
多行注释:
/*
多行注释
*/
文档注释,主要依赖于javadoc.exe,提取java源代码文件中的注解结构,生成html-api 参考文件
/**
* 文件注释
* 类注释
* 属性注释
* 方法注释
*/
案例:
package com; /** * 这里主要写本文件的注释信息,比如作者,文件名之类的注释 * @author webrx * javac -d . Hello.java * java com.Hello */ public class Hello { /* *多行注释 */ public static void main(String[] args) { // 单行注释 System.out.println("Hello com"); } }
变量 常量
变量
变量是指值在程序运行期间可以被改变的量。变量用于储存信息。它指向内存的某个单元,而且指明了这块内存有多大。java是强类型,变量必须先声明初始化才可以使用。java程序中,变量名是区分大小写。
public class User { // 在这里声明的变量属于全局变量,在整个类中都可以用 //声明静态变量,并初始化 static int a = 3; //声明变量 int b; public static void main(String[] args) { //在方法里声明的变量只能在这个方法中用,在其他方法中不能用。 //声明变量,并初始化 int c=111; //输出变量a和c System.out.println(a); System.out.println(c); }
我这里是在WIN10的控制台执行的,用IDEA或者其他工具可以直接点运行程序就可以
常量
在开发领域常量一般都要求全大写
指在程序执行期间其值不能发生变化的数据。例如数学中的π= 3.1415……又如:整数123,小数1.23,字符’A’,布尔常量 true、false等,程序开发中,常量名一般规则全部大写,声明常量时必须赋值,以后只能使用,不能再赋值,java语言声明常量使用final。
class User{ // 声明全局常量 static final int a=3; public static void main(String[] arg){ // 声明局部常量 final int c=111; System.out.println(a); System.out.println(c); } }
- 这样看是不是两个没什么区别?
常量是不可以变的,并且创建的时候必须赋值。而变量可以不赋值,用的时候再赋值。
这里声明常量a没有赋值,后面用的时候再赋值
class User{ static final int a; public static void main(String[] arg){ final int c=111; System.out.println(a); System.out.println(c); } }
运行报错
变量a声明的时候没赋值,运行之前赋值
class User{ static int a; public static void main(String[] arg){ int c=111; a=11; System.out.println(a); System.out.println(c); } }
正常运行
数据类型与类型转换
(1)基本数据类型 byte short int long float double char boolean (8大类型)
1、整型 byte short int long
2、浮点型 float double
3、字符型 char a = ‘y’;
4、布尔 boolean
(2)引用数据类型(对象 类 接口 数组)
常用数据类型
常用数据类型,其他的基本数据类型看上面的表。用法都一样
class User{ public static void main(String[] arg){ // int类型 赋值只能是整数,长度适中,一般都够用 int a=1; // String 字符串类型,数字,字母,汉字都属于字符串都可以用 String b="hello"; // boolean 一般用于判断对错,因为这个类型的变量只有两个值,true和false 要么对要么错 boolean c=true; System.out.println(a); System.out.println(b); System.out.println(c); } }
类型转换
// 声明int类型 int i = 30; //转换成short类型 short n = (short)i; package cn; public class Var2 { public static void main(String[] args) { int a = 5; a += 1; a = a + 1; System.out.println(a);//7 short b = (short) a;//7 b += 1;//b 8 (+=可以实现自动的类型转换) a = b + 1;//a = 9 b=8 (b+1 结果类型为int 此) System.out.println(a);//9 System.out.println(b);//8 } }
自动隐式转换
运算符表达式
运算符:是一种特殊符号,用以表示数据的运算、赋值和比较。
表达式:使用运算符将运算数据连接起来的符合Java语法规则的式子。
int i = 20*30;
(1)、算术运算符
+ - * / % ++ --
int i = 5; ++i; //自身加1 i++; System.out.println(--i); //自身减1 如果++ -- 在变量前,先执行再使用,如果在后,先使用再自执行。 public class Var4 { public static void main(String[] args) { int i = 5; ++i; int b = i--;//b=6 i=5 System.out.println(i);//5 System.out.println(b);//6 System.out.println(6%2);//0 取余数 System.out.println(3/2);//1 取整商 System.out.printf("%.3f%n",3/2f);//1.500 System.out.printf("%.3f",3/2.0);//1.500 } }
(2)、赋值运算符
= += -= *= /= %=
(3)、比较运算符
== != > >= < <=
== 和 = 结果不一样,==是判断等不等,=是赋值
注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。
注2:比较运算符“==”不能误写成“=” ,切记!切记!
(4)、逻辑运算符
&&逻辑与 ||逻辑域 !逻辑非
标识符 关键字 保留字
- 标识符(identifier)是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义。在计算机编程语言中,标识符是用户编程时使用的名字,用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。
- 标识符通常由字母和数字以及其它字符构成。标识符是由字母 数字 下滑线 $组成的,不能数字开头,不能使用空格和特殊的符号,如下红框内的是非法
- 保留字(reserved word),指在高级语言中已经定义过的字,使用者不能再将这些字作为变量名或过程名使用。 保留字包括关键字和未使用的保留字。
- 关键字则指在语言中有特定含义,成为语法中一部分的那些字。在一些语言中,一些保留字可能并没有应用于当前的语法中,这就成了保留字与关键字的区别。一般出现这种情况可能是由于考虑扩展性。例如,Javascript有一些未来保留字,如abstract、double、goto等等。
关键字 | 含义 |
---|---|
abstract | 表明类或者成员方法具有抽象属性 |
assert | 断言,用来进行程序调试 |
boolean | 基本数据类型之一,声明布尔类型的关键字 |
break | 提前跳出一个块 |
byte | 基本数据类型之一,字节类型 |
case | 用在switch语句之中,表示其中的一个分支 |
catch | 用在异常处理中,用来捕捉异常 |
char | 基本数据类型之一,字符类型 |
class | 声明一个类 |
const | 保留关键字,没有具体含义 |
continue | 回到一个块的开始处 |
default | 默认,例如,用在switch语句中,表明一个默认的分支。Java8 中也作用于声明接口函数的默认实现 |
do | 用在do-while循环结构中 |
double | 基本数据类型之一,双精度浮点数类型 |
else | 用在条件语句中,表明当条件不成立时的分支 |
enum | 枚举 |
extends | 表明一个类型是另一个类型的子类型。对于类,可以是另一个类或者抽象类;对于接口,可以是另一个接口 |
final | 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量 |
finally | 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块 |
float | 基本数据类型之一,单精度浮点数类型 |
for | 一种循环结构的引导词 |
goto | 保留关键字,没有具体含义 |
if | 条件语句的引导词 |
implements | 表明一个类实现了给定的接口 |
import | 表明要访问指定的类或包 |
instanceof | 用来测试一个对象是否是指定类型的实例对象 |
int | 基本数据类型之一,整数类型 |
interface | 接口 |
long | 基本数据类型之一,长整数类型 |
native | 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的 |
new | 用来创建新实例对象 |
package | 包 |
private | 一种访问控制方式:私用模式 |
protected | 一种访问控制方式:保护模式 |
public | 一种访问控制方式:共用模式 |
return | 从成员方法中返回数据 |
short | 基本数据类型之一,短整数类型 |
static | 表明具有静态属性 |
strictfp | 用来声明FP_strict(单精度或双精度浮点数)表达式遵循[IEEE 754](https://baike.baidu.com/item/IEEE 754)算术规范 |
super | 表明当前对象的父类型的引用或者父类型的构造方法 |
switch | 分支语句结构的引导词 |
synchronized | 表明一段代码需要同步执行 |
this | 指向当前实例对象的引用 |
throw | 抛出一个异常 |
throws | 声明在当前定义的成员方法中所有需要抛出的异常 |
transient | 声明不用序列化的成员域 |
try | 尝试一个可能抛出异常的程序块 |
void | 声明当前成员方法没有返回值 |
volatile | 表明两个或者多个变量必须同步地发生变化 |
var | java10新增的关键字,用来推断类型 var i = 20; |
while | 用在循环结构中 |
小常识
java是严格区分大小写的
(1)类,接口和枚举或对象是首字母大写,如果有多个单词第二个单词首字母大写:User.java UserBook.java
System Scanner Date String 。
(2)变量名,常量名严格区分大小写 java中常量名要求全部大写 AGE。
(3)方法名一般是
setXxx getXxx isXxxx getUserName() 动词开头,从第二个单词开始使用大写。
加载全部内容