Java学习(二)
第2章 Java入门
2.1 开发第一个Java程序
2.1.1 使用Intellij IDEA开发程序
-
安装 Intellij IDEA
-
工程
工程(project)
新建项目——新建java class——run——控制台(Console)可以看到打印结果
2.1.2 编码规范
-
强制编码规范
(1)Java程序的文件名与类名必须一致
(2)main方法是程序的入口,方法的定义必须严格按照格式书写
(3)类是组织Java代码结构的,类中的方法是具体执行业务逻辑的,{}[]等必须成对使用
-
建议编码规范
(1)通常情况下,一行只写一条语句
(2)注意代码缩进
2.1.3 注释
-
Java中的注释
(1)单行注释://注释内容
(2)多行注释:/*注释内容
注释内容
注释内容*/
(3)文档注释:/**注释内容
*注释内容
*注释内容
*/
文档注释可以使用JDK的javadoc工具来生成信息,并输出到HTML文件中,可以更加封边地记录程序信息,javadoc注释标签语法如表:
标签 描述 @author 标识作者 @deprecated 标识过期的类或成员 @exception 标识抛出的异常 @param 标识方法的参数 @return 标识方法的返回值 @see 标识指定参考的内容 @serial 标识序列化属性 @serialData 标识通过weiteObject()和writeExternal()方法写的数据 @serialField 标识ObjectStreamField组件 @since 标识引入一个特定的变化 @throws 标识抛出的异常 @version 标识版本 {@docRoot} 标识当前文档根目录的路径 {@inheritDoc} 标识从直接父类继承的注释 {@link} 标识插入的主题链接 {@linkplain} 标识插入的主题链接,但是该链接显示纯文本字体 {@value} 标识常量的值,该常量必须是static属性 javadoc -d 文档存放目录 -author -version 源文件名.java
-
快捷键
Ctrl + / 或Ctrl + Shift + / 注释
Ctrl + H 显示类结构图
Ctrl + Q 显示注释文档
2.1.4 关键字
-
关键字的定义
Java关键字是指Java语言预先定义好的,有指定意义的标识符,是程序的核心组成。Java 关键字都是小写。
-
关键字的含义
关键字 含义 abstract 标识类或方法为抽象类型 assert 断言、用于调式程序 boolean 基本数据类型 break 跳出整个循环体 byte 基本数据类型 case 与switch搭配使用,标识变量符合某个条件 catch 与try搭配使用,捕获某个异常 char 基本数据类型 class 标识一个类 const 保留字 continue 跳出当前循环,执行下一次循环 default 与switch搭配使用,表示默认值 do 与while搭配使用,标识循环体的开始 double 基本数据类型 else 与if搭配使用,表示条件不成立 enum 枚举类型 extends 标识类的继承 final 修饰常量,表示类不能被继承,方法不能被覆盖,变量值不能被修改 finally 与try、catch搭配使用,表示无论如何都会执行 float 基本数据类型 for 标识循环 goto 保留字 if 条件判断 implements 标识类实现某个接口 import 在类中引用某个包中的类 instanceof 判断变量的数据类型 int 基本数据类型 interface 接口 long 基本数据类型 native 修饰本地方法,表示该方法不是有Java实现的 new 创建实例对象 package 表示包,是一种组织Java类的结构 private 访问权限修饰符,表示私有 protected 访问权限修饰符,表示保护 public 访问权限修饰符,表示共有 return 在方法中返回一个值 short 基本数据类型 static 静态修饰符 strictfp 表示FP-strict,精确浮点 super 表示调用父类的成员 switch 流程控制语句 synchronized 线程同步 this 表示调用当前实例对象的成员 throw 抛出异常 throws 标识在方法中可能会抛出的异常 transient 表示不可序列化状态 try 标识可能会抛出异常的代码块 void 表示当前方法啊没有返回值 volatile 修饰变量,线程在访问该变量时,读取的时该变量被修改之后的值,保证每个线程读到最新值 while 标识循环
2.2 变量
2.2.1 什么是变量
变量是这指计算机语言中可改变的值得概念。
内存是计算机存储数据的地方。
变量是一个概念,存储在内存中,方便存取内存中的数据,是程序中存储数据的基本单元,变量有三要素:数据类型、变量名、变量值。
2.2.2 如何使用变量
- 声明变量的数据类型和变量名
- 给内存空间赋值
2.3 基本数据类型
分类 | 基本数据类型 | 所占空间 | 描述 |
---|---|---|---|
数值类型 | byte | 1字节(8位) | 数据的最小单位,一字节位8位二进制,所以byte的取值范围是-128~127 |
数值类型 | int | 4字节(32位) | 整数的最常用类型,取值范围是-2147483648~2147483647(0111 1111 1111 1111 1111 1111 1111 1111) |
数值类型 | short | 2字节(16位) | 短整型,特定的情况下使用short比使用int可以节省很多内存,取值范围-32768~32767 |
数值类型 | long | 8字节(64位) | 长整型,描述int无法承载的海量数据,取值范围-9223372036854775808~9223372036854775807 |
数值类型 | float | 4字节(32位) | 单精度浮点型,float类型的数据末尾必须添加“f”或“F”,用以区分double类型,取值范围3.402823e+38~1.401298e-45 |
数值类型 | double | 8字节(64位) | 双精度浮点型,比float存储范围更大,精度更高,取值范围1.797693e+308~4.9000000e-324 |
非数值类型 | char | 2字节(16位) | 标识单个字符,可以是字母、汉字、数字、符号等,存储范围\u0000~\uFFFF |
非数值类型 | boolean | 1/8字节(1位) | 判断逻辑条件,只有两个值true和false,true标识成立,false表示不成立 |
string:本质位多个char类型的数据组成的数据。
package com.company;
public class Test {
public static void main(String[] args){
int id = 1;
String name = "张三";
char gender = '男';
int height = 176;
double weight = 60.5;
System.out.println("用户信息如下:");
System.out.println("编号:"+id);
System.out.println("姓名:"+id);
System.out.println("性别:"+gender);
System.out.println("身高:"+height);
System.out.println("体重:"+weight);
}
}
2.4 数据类型转换
2.4.1 自动转换
只能由低字节向高字节转换。byte——short——int——long——float——double
package com.company;
public class Test {
public static void main(String[] args){
byte num1 = 10;
short num2 = num1;
int num3 = num2;
long num4 = num3;
float num5 = num4;
double num6 = num5;
System.out.println(num1);
System.out.println(num2);
System.out.println(num3);
System.out.println(num4);
System.out.println(num5);
System.out.println(num6);
}
}
2.4.2 强制转换
浮点数转换为整型,只会保留小数点左边的数值。
package com.company;
public class Test {
public static void main(String[] args){
double num7 = 10.7;
int num8 = (int) num7;
System.out.println(num8);
}
}
2.5 运算符
2.5.1 赋值运算符
赋值运算符"="
2.5.2 基本运算符
“+” 加 ;"-" 减 ; "*"乘 ; “/” 全为整型,商为整型,至少有一个为浮点数,商为浮点数; “%” 求余;
“a++” !="++a"
package com.company;
public class Test {
public static void main(String[] args){
int num1 = 10;
System.out.println(num1++);
System.out.println(num1);
System.out.println(++num1);
}
}
例:
求326各位数之和:
package com.company;
public class Test {
public static void main(String[] args){
int num = 326;
int ones = num/100;
int tens = (num/10)%10;
int hundreds = num%10;
int sum = ones+tens+hundreds;
System.out.println("326各位数之和为"+sum);
}
}
2.5.3 复合算术运算符
“+=”;"-=";"/=";"%=";"*="
2.5.4 关系运算符
“==”;"!=";">";"<";">=";"<="
例:
package com.company;
public class Test {
public static void main(String[] args){
int num1 = 10;
int num2 = 11;
boolean result = num1 == num2;
System.out.println(result);
}
}
2.5.5 逻辑运算符
"&“与;”|“或;”!"非
"&&"短路与,第一个数为false,就不会再执行了,逻辑上更高效;
"||"短路或,同上。
例:
package com.company;
public class Test {
public static void main(String[] args){
int num1 = 10;
int num2 = 11;
System.out.println((num1++==num2)&(++num1==num2));//false
System.out.println(num1);//12
}
}
2.5.6 条件运算符
变量a = 条件?值1:值2;
2.5.7 位运算符
"&“按位与;”|“按位或;”^“按位异或;”<<"左移;“右移”
package com.company;
public class Test {
public static void main(String[] args){
System.out.println(10&5);/0
System.out.println(10|5);/15
System.out.println(10^5);/9
System.out.println(2<<3);/16
System.out.println(2>>3);/0
}
}