整理java基础知识点

本文详细介绍了Java的历史、版本及其技术体系,包括JavaSE、JavaEE和JavaME。重点讲解了Java的重要特点,如面向对象、健壮性和跨平台性。还深入探讨了JVM、JDK和JRE的概念及它们之间的关系。此外,文章提到了Java编程的基本规范,如类的定义、主方法的位置、数据类型转换和运算符的使用。同时,涵盖了字符串和数据类型的转换、变量声明以及异常处理等核心概念。最后,文章通过实例展示了如何理解和避免编程过程中的常见错误。
  1. java的第一个版本是哪一年?java之父是谁?
    1995年sun公司发布的java第一个版本 ,java之父是gosling
  2. java技术体系是什么样的?
    • Java SE标准版:提供完整的java核心API
    • Java EE企业版:为开发企业环境下的应用程序提供的一套解决方案。包含的技术有Servlet、Jsp等
    • Java ME小型版:支持程序运行在移动终端,现已被Android取代
  3. java有哪些重要特点?
    • 面向对象
    • java具有健壮性:强类型机制、异常处理、垃圾的自动收集等是java程序的重要保证
    • 跨平台:一个class文件可以在多个平台下运行
    • 解释性语言:编译后的文件不能直接在机器上运行,需要解释器来执行
  4. 什么是JVM、JDK、JRE
    JVM:java虚拟机,是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器,包含在JDK中
    JDK:java开发工具包,JDK=JRE+java的开发工具(javac\java\javadoc\javap)
    JRE:java运行环境,JRE=JVM+java的核心类库
    JDK\JRE\JVM
    所以如果是开发人员,需要安装Java的开发工具就需要下载JDK安装;如果是普通用户,需要运行编译好的class文件就需要安装JRE。
  5. 环境变量配置过程中,用户变量和系统变量的区别是什么?
    用户变量的配置只对当前用户有效,系统变量的配置对该机器上所有用户都有效。
  6. 默写Hello程序中的报错
public class Hello{
	public static void main(String[] args){
		System.out.println("hello, world");
	}
}

是的,就是上面这个最简单的java程序,我出现了2个报错。

  • static和void顺序调换,之后的学习中注意
  • 文件命名和class名不一致!
  1. 术语
    .java文件是源文件,.class文件是字节码文件
  2. java开发注意点
  • 一个源文件最多只能有一个public类,其他类不限
  • 每一个类都对应一个.class文件
  • 如果源文件包含一个public类,则文件必须以该类名命名
  • 主方法不仅可以放在public类中,也可以放在非public类中
  1. 快速学习技术分享
    分享
  2. java中的转义字符
    \t:制表位
    \n:换行
    \\:输出
    \":注意是英文状态下的双引号
    \':注意是英文状态下的单引号
    \r:回车 System.out.println(“hellohello\rdajun”); // dajunhello
  3. 数据类型
    请添加图片描述
  • 变量名三要素:类型+名称+值
  • java中每一种数据都明确定义了数据类型,所以java是强类型语言
  • 浮点数 = 符号位 + 指数位 + 尾数位。尾数部分可能丢失,造成精度损失,所以小数都是近似值。
  • 浮点数不可以直接比较相等,可以通过比较差值的绝对值的范围得出近似结果。
  • 科学记数法:5.12e2 是5.12*10的2次方;5.12E-2 是5.12/10的2次方
  • ASCII编码表:一个字节表示,一共128个字符,但一个字节可以表示256个字符
  • Unicode表:字母和数字都是两个字节表示,比较浪费空间,unicode码兼容ascii码
  • utf-8:字母用1个字节表示,汉字用3个字节表示
  • gbk:可以表示更广范围的汉字,字母用1个字节表示,汉字用2个字节表示
  • big5:繁体中文,在台湾和香港用得较多
  1. 数据类型的转换
    数据类型按照精度大小排序:
    char -> int -> long -> float -> double;
    byte -> short -> int -> long -> float -> double;
  • byte、short和char之间不会相互转换
  • 当把具体 数赋给byte时,先判断该数是否在byte范围(-128~127)内,如果是就可以进行转换。egbyte b1 = 10;
  • byte、short、int三者进行计算时,会首先转成int。就算是两个byte类型的数据计算也会转成int。
  • boolean类型不参与转换
  • 自动提升原则:表达式结果的类型自动替换为操作数中最大的类型。
  • 和String类型的转换:String s = 其他类型 + “”;
  • 转换其他类型使用包装类:eg: int i = Integer.parseInt(string);
  1. 强制类型转换
  • 转换的数据精度从大到小,就需要使用强制转换
  • 强转符号只针对最近的操作数有效,往往使用小括号提升优先级。
  • char类型可以保存int的常量值,但不能保存int的变量值,只能强转。
  1. 运算符
  • 算术运算符
    取模运算符:%
    a % b:如果a是小数,公式:=a - (int) a / b * b
    int j = ++i:先自增再赋值 i=i+1,j=i
    int j = i++:先赋值再自增 j=i,i=i+1
    经典题目:
int i = 1;
i = i++; // 规则:使用一个temp变量 1. temp=i,2.i=i+1,3.i=temp
System.out.println(i); //输出结果是1

int m = 1;
m = ++m; // 规则:使用一个temp变量 1. i=i+1,2.temp=i,3.i=temp
System.out.println(m); //结果是2
  • 赋值运算符
    赋值运算符包括基本赋值运算符和复合赋值运算符。
    复合赋值运算符会进行类型转换:byte b = 3; b += 2;相当于b = (byte) (b + 2); b++也是一样的道理。

  • 关系运算符(比较运算符)

  • 逻辑运算符
    短路与&&:两个条件都为true,结果为true。如果第一个条件为false,第二个条件不执行。
    逻辑与&:两个条件都为true,结果为true。如果第一个条件为false,第二个仍会执行。
    短路与逻辑与 效率更高。

短路或||:只要一个条件为true,结果为true。如果第一个条件为true,第二个条件不执行。
逻辑或|:只要一个条件为true,结果为true。如果第一个条件为true,第二个条件仍会执行。
短路或逻辑或 效率更高。

逻辑异或:两个条件不同结果为true,相同则为false。

  • 位运算符
  • 三元运算符

运算符优先级-从高到低

  1. () {}
  2. 单目 ++ –
  3. 算术运算符
  4. 位移运算符
  5. 比较运算符
  6. 逻辑运算符
  7. 三元运算符
  8. 赋值运算符
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值