Java基础
Posted ckk221
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础相关的知识,希望对你有一定的参考价值。
Java基础
JDK:Java Development Kit
JRE:Java Runtime Environment
JVM:Java Virtual Machine
HelloWorld
public class HelloWorld{
public static void main(String[] args){
System.out.println("HelloWorld!");
}
}
编译javac java文件,会生成一个class文件
运行class文件,java class文件
Java程序运行机制
- 编译型
- 解释型
比如一个美国人要读中文的小说,但是他不会中文所以需要想个办法来读懂,而编译型语言其实就是把整本书全部翻译一遍,解释型是找一个翻译来逐句对整本书进行翻译。编译型效率更高一点,但是解释型
编译型语言:C C++
解释型语言:js python vb
Java基础语法
注释
- 单行注释
- 多行注释
- 文档注释
idea快捷键 command+d 复制粘贴当前行
文档注释在idea中敲出/**后直接敲回车就出来了
标识符
Java所有的组成部分都需要名字。 类名、变量名以及方法名都被成为标识符。
所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始
首字符之后可以是字母(A-Z或者a-z),美元符($)、下划线(_)或数字的任何字符组合
不能使用关键字作为变量名或方法名
标识符是大小写敏感的
可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很LOW
数据类型
-
强类型语言
- 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
-
弱类型语言
Java的数据类型分为两大类
- 基本类型
- 数值类型
- 整数类型:byte short int long(要在数字后面加个L)
- 浮点类型:float(要在数字后面加个F) double
- 字符类型:char
- boolean类型:true false
- 数值类型
- 引用类型:类、接口、数组
数据类型的一些拓展
整数的拓展
进制:二进制0b 十进制 八进制0 十六进制0x
int i = 0b10; //二进制
int i1 = 10; //十进制
int i2 = 010; //八进制
int i3 = 0x10; //十六进制0x
System.out.println(i); //2
System.out.println(i1); //10
System.out.println(i2); //8
System.out.println(i3); //16
浮点数的拓展
两个例子
float f = 0.1f;
double d = 1.0/10;
System.out.println(f==d);//表示输出f是否等于d的结果,返回false,表示二者不等
float d1 = 23132132131231213f;
float d2 = d1 + 1;
System.out.println(d1 == d2);//返回true
浮点数是有限 离散 舍入误差 大约 接近但不等于,所以最好完全避免使用浮点数进行比较
字符的拓展
char c1 = ‘A‘;
char c2 = ‘中‘;
System.out.println(c1); //A
System.out.println((int)c1); //65
System.out.println(c2); //中
System.out.println((int)c2); //20013
所有的字符本质还是数字
编码 Unicode表:(97=a 65=A)2字节 0-65535 常常用U0000 UFFFF来表示
char c3 = ‘u0062‘; // u表示转义
System.out.println(c3); //a
int c4 = 97;
System.out.println((char)c4); //a
转义字符
表示制表符
表示换行符
类型转换
由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换
低---------------------------------------------------------->高
byte,short,char -> int -> long -> float -> double
//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割,并不会被输出
int money = 10_0000_0000;
System.out.println(money); //1000000000
int years = 20;
int total = money*years;
System.out.println(total); //-1474836480,计算的时候溢出了
long total2 = money*years; //仍然不行,还是溢出,因为默认是int,转换之前已经存在问题了
long total3 = money*((long)years); //先把一个数转化为Long
System.out.println(total3); //20000000000 溢出问题得到解决
变量
变量是什么?就是可以变化的量
Java是一种强类型语言,每个变量都必须声明其类型
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
type varName = value
注意:
- 每个变量都有类型,类型可以使基本类型,也可以是引用类型
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束
变量作用域
- 类变量
- 实例变量(从属于对象)
- 局部变量(必须声明和初始化值)
public class Variable{
static int allClicks = 0; //类变量
String str = "hello world"; //实例变量
public void method(){
int i = 0; //局部变量
}
}
变量的命名规范
所有变量、方法、类名:见名知意
类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写
局部变量:首字母小写和驼峰原则
常量:大写字母和下划线:MAX_VALUE
类名:首字母大写和驼峰原则:Man,GoodMan
方法名:首字母小写和驼峰原则:run(),runRun()
常量
常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。
所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
final 类型 常量名 = 值;
final double PI = 3.14;
常量名一般使用大写字符
修饰符不存在先后顺序
运算符
不同类型的变量进行运算会自动转换为容量大的数据类型
自增运算符
int a = 1;
int b = a++;
System.out.println("a="+a); //a=2
System.out.println("b="+b); //b=1
int a = 1;
int b = ++a;
System.out.println("a="+a); //a=2
System.out.println("b="+b); //b=2
短路运算
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d); //false
System.out.println(c); //5
//c的值并未发生变化,说明(c<4)判false后&&后面的运算没有执行就退出了
位运算
A = 0011 1100
B = 0000 1101
A&B = 0000 1100 //两者均为1才为1,其余为0
A|B = 0011 1101 //有一个1就为1,其余为0
A^B = 0011 0001 //相同为0,不同为1
~B = 1111 0010 //全部取反
字符串连接符"+"
运算顺序的不同结果也不同
int a = 10;
int b = 20;
System.out.println(""+a+b); //1020
System.out.println(a+b+""); //30
以上是关于Java基础的主要内容,如果未能解决你的问题,请参考以下文章