目录
JDK、JRE、JVM三者之间的关系
JAVA的特点
第一个JAVA程序
JAVA的关键字
JAVA标识符
JAVA的变量
变量练习
布尔型变量练习
字符型变量练习
浮点型变量练习
引用类型变量练习
位运算练习(位运算是按位进行的,要与逻辑关系运算区别)
移位运算练习
整数运算练习
类型转换练习
浮点型相关运算
逻辑运算练习
练习(计算[(1+N)*N]/2的值)
JDK、JRE、JVM三者之间的关系
JAVA的特点
- 面向对象的编程语言;
- 具有健壮性:强类型机制、异常处理、自动收集垃圾;
- 跨平台支持:一个编译好的.class文件可以在多个系统下运行;
- 是一种解释性语言。
第一个JAVA程序
public class Hello {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
- class表明在此处定义了一个类,类名为Hello。
- public为访问修饰符。
- public static void main(String[] args)是JAVA的入口部分,其参数部分也可以写成String args[]。
- JAVA总是从main方法开始执行的。
JAVA的关键字
- 定义:在java中,被java语言赋予特殊含义,用作专门用途的字符串。
- 特点:关键字中所有字母都是小写的。
关键字类型
用于定义字符类型 |
class | interface |
byte | short |
long | float |
char | boolean |
用于定义流程控制 |
if | else |
case | default |
do | for |
continue | return |
用于定义访问权限修饰符的关键字 |
public | private |
protected | |
用于定义类与类之间关系的关键字 |
extends | implements |
用于定义类、函数、变量修饰符的关键字 |
abstract | final |
static | synchronize |
用于定义创建实例以及引用实例、判断实例的关键字 |
new | this |
super | instanceof |
用于处理异常的关键字 |
try | catch |
finally | throw |
throws | |
用于包的关键字 |
packge | import |
其他的修饰关键字 |
native | strictfp |
transient | volatile |
用于定义数据类型值的关键字 |
true | false |
null | |
JAVA标识符
- 标识符由字母、$、_、数字组成,但是不能以数字开头。
- 关键字不能作为变量名和方法名,只有标识符可以作为变量名和方法名。
- 标识符需要严格区分大小写,java对大小写敏感。
- 标识符的长度无限制。
- 可以使用中文作为标识符。
JAVA的变量
基本数据类型变量所占用的空间
byte | 1B |
short | 2B |
int | 4B |
long | 8B |
float | 4B |
double | 8B |
char | 2B |
变量练习
package 数据类型;
public class Variable {
static int all = 0;//类变量
String str = "Hello World";//实例变量
public void method() {
int i = 0;//局部变量
System.out.println(i);
}
public static void main(String[] args) {
int x = 100;//变量赋值
System.out.println(x);
x = 200;//变量重新赋值
System.out.println(x);
int n = 230;//变量赋值
System.out.println(n);
x = n;//变量重新赋值
System.out.println(x);
x++;
System.out.println(x);
}
}
布尔型变量练习
package 数据类型;
public class BooleanNumber {
public static void main(String[] args)
{
int age=19;
boolean result=false;
if(age>=18)
{
result=true;
}
System.out.println(result);
}
}
字符型变量练习
package 数据类型;
public class CharNumber {
public static void main(String[] args)
{
char numbers='1';
char numbers2='中';
System.out.println(numbers);
System.out.println(numbers2);
}
}
浮点型变量练习
package 数据类型;
public class DoubleNumber {
public static void main(String[] args) {
float f1 = 3.14f;
float f2 = 3.14e12f;
double d1 = 3.14e100d;
double d2 = 3.14e-100d;
double d3 = -3.14e100d;
System.out.println(f1);
System.out.println(f2);
System.out.println(d1);
System.out.println(d2);
System.out.println(d3);
}
}
引用类型变量练习
package 数据类型;
public class StringNumber {
public static void main(String[] args)
{
String s1="hello world";
System.out.println(s1);
final double PI = 3.14;//常量
double r=100;
double area=PI*r*r;
System.out.println(area);
}
}
位运算练习(位运算是按位进行的,要与逻辑关系运算区别)
package 整数运算;
public class BitNumber {
public static void main(String[] args) {
//与运算
System.out.println(1 & 1);
System.out.println(1 & 2);
System.out.println(1 & 3);
System.out.println(1 & 0);
//换行
System.out.println("\n");
//或运算
System.out.println(1 | 1);
System.out.println(1 | 2);
System.out.println(1 | 3);
System.out.println(1 | 0);
//换行
System.out.println("\n");
//异或运算
System.out.println(1 ^ 1);
System.out.println(1 ^ 2);
System.out.println(1 ^ 0);
//换行
System.out.println("\n");
//非运算
System.out.println(~1);
System.out.println(~2);
System.out.println(~0);
}
}
移位运算练习
package 整数运算;
public class ShiftNumber {
//main
public static void main(String[] args) {
int n=7;
System.out.println(n>>3);
System.out.println(n<<3);
}
}
整数运算练习
package 整数运算;
import java.util.Scanner;
public class IntNumber {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println(n);
Scanner sc2 = new Scanner(System.in);
int n2 = sc2.nextInt();
System.out.println(n2);
int n3 = n + n2;
int n4=n*n2;
int n5=n/n2;
int n6=n%n2;
int n7=n-n2;
System.out.println(n3);
System.out.println(n4);
System.out.println(n5);
System.out.println(n6);
System.out.println(n7);
}
}
类型转换练习
package 整数运算;
public class 类型提升 {
public static void main(String[] args) {
short s=1234;
int i=10000000;
System.out.println(s+i);//s+i自动转换为int类型
short x=(short)(s+i);//强制类型转换,但是可能得到错误的结果
System.out.println(x);
}
}
浮点型相关运算
package 浮点数运算;
//浮点数不能进行位运算和移位运算,因为不能精确表示,会产生误差
public class FloatNumber {
public static void main(String[] args)
{
//误差问题,x和y理论上是相等的,但是在计算中存在误差,因此两数是不相等的
double x=1.0/10;
double y=1-9.0/10;
System.out.println(x);
System.out.println(y);
//定义误差
double r=Math.abs(x-y);
if (r<0.0001)
System.out.println("相等");
//类型提升
int n=5;
double d=1.2+24.0/n;//此处的n(整型)会自动提升至浮点型
System.out.println(d);
//浮点数的溢出问题
double d1=0.0/0;//NaN
double d2=1.0/0;//Inf
double d3=-1.0/0;//-Inf
System.out.println(d1);
System.out.println(d2);
System.out.println(d3);
//浮点数强制转换为整型时是直接舍弃小数部分,如果要四舍五入,则需要先+0.5再进行强制类型转换
}
}
逻辑运算练习
package 布尔型运算;
public class BooleanNumber {
public static void main(String[] args) {
boolean a = true;
boolean b = false;
System.out.println(a == b);
System.out.println(a != b);
System.out.println(a && b);//逻辑与运算
System.out.println(a || b);//逻辑或运算
System.out.println(!a);
System.out.println(!b);
//对于逻辑或,在一个表达式中,只要出现1 || parta,parta部分不变,表达式的值永远为真
//对于逻辑与,在一个表达式中,只要出现0 && parta,parta部分不变,表达式的值永远为假
}
}
练习(计算[(1+N)*N]/2的值)
import java.util.Scanner;
public class 练习1 {
public static void main(String[] args) {
//计算[(1+N)*N]/2的值
//输入一个数n
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
//计算
long result;
result = (1 + n) * n / 2;
//输出
System.out.println(result);
}
}