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基础的主要内容,如果未能解决你的问题,请参考以下文章

JSP 基础语法

Java基础:封装

[vscode]--HTML代码片段(基础版,reactvuejquery)

JSP开发中的基础语法

Java基础之方法的调用重载以及简单的递归

Java基础——JSP