Java基础(一)面试常问

一、Java基础

java命令

javac:Java编译器,将Java源代码转换成字节,编译成可以运行的.class文件
java:运行.class文件, Java解释器,直接从类文件执行Java应用程序代码
javadoc:根据Java源代码及其说明语句生成HTML文档
jar:多用途的存档及压缩工具,是个java应用程序,可将多个文件合并为单个JAR归档文件

基础编译原理

在这里插入图片描述
源代码 --> JVM编译 --> 可运行的.class文件(Java字节码文件) -->Java运行平台上运行
百度文库这篇文章进行了一些说明
https://wenku.baidu.com/view/a19004b069dc5022aaea006e.html

注释

// 单行注释
/**/ 多行注释
/**  */文档注释

一些编码规范

 命名:
  类:首字母大写,多个单词则每个单词首字母大写,驼峰命名法
  包:全小写,域名,项目名倒叙写
  方法:首个单词小写,多个单词,后面单词首字母小写
  变量:与方法相同,常量全大写,多个单词用 _ 隔开

相关名词:

JDK:Java语言的软件开发工具包(Java Development Kit)
JRE:Java运行环境(Java Runtime Environment),包含了java虚拟机,java基础类库
API:应用程序接口(Application Programming Interface)
Java API:Java标准类库提供的函数
虚拟机 JVM:基于操作系统给不同的操作系统配置对应的运行环境
JVM结构
在这里插入图片描述
环境变量:
JAVA_HOME:方便找到java安装目录
CLASSPATH: lib目录下的dt.jar lib.jar rt.jar
​path: bin jre/bin

二、变量数据类型

基本数据类型

八大基本数据类型:

byte  short  int  long  float  double  char  boolean

整型:int 32位 short16位 long 64位 byte8位
浮点型:double float(float f = 1.0f)
字符型:char (ASII码:0:48 a:97 A:65)
布尔型:boolean
引用数据类型:Array,new 出来的,string是个特殊的引用类型
自定义类型:类

类型转换

显示转换(强制类型转换)--------->大转小

Animal cat = new Cat;
cat = (Cat) A;
double b=3.0;
int a = (int)b;

隐式转换--------->小转大

int a=2;
double b;
b=a;

基本数据类型和引用数据类型区别
存储不同,基本数据库类型存储在栈中,值来源于常量池
引用数据类型在堆栈中,值来源于常量池,对象,方法区,静态
栈中基本数据存为值,引用数据类型存为地址
参数传递过程中,基本数据类型传值,引用数据类型传地址
拆装箱
装箱就是自动将基本数据类型转换为包装器类型;拆箱就是自动将包装器类型转换为基本数据类型

//自动装箱
Integer a =1;
//自动拆箱
int b = a;

三、流程控制

选择结构

  if   if-else   if-else if-else
  switch-case

循环结构

for() while() do{}while()
三个关键字
break;
continue;
return;
 普通  增强for
遍历数组来说
普通for循环可以遍历数据,获取数组的下标,删除数组里的值,根据下标修改数组,即:增删改查,
增强for循环,只可以遍历数组
关于效率
当为数组时,效率几乎是差不多的
当为集合时效率却大不同,当为ArrayList时,普通for的效率高于增强for
当为LinkedList时,增强for的效率高于普通for

四、集合框架

结构图

在这里插入图片描述

相关集合框架特点

Collection:无序,可重复
List:有序、可重复
ArrayList :底层数据结构是数组;查询快,增删慢;线程不安全,效率高
LinkedList :底层数据结构是链表;查询慢,增删快;线程不安全,效率高
Set:无序、不可重复
HashSet:底层数据结构是哈希表;元素唯一性:hashCode()equals()
TreeSet:底层数据结构是红黑树;不重复,有序。排序:自然排序,比较器排序
Map:键值对、无序、值可重复、键不可重复
HashMap:key-value,key不可重复value可重复
解决强制类型转换时容易出现异常的问题
  Listget(index)方法获取元素
  Mapget(key) 方法获取元素
  Iteratornext()方法获取元素

基础整理随时补充

发布了27 篇原创文章 · 获赞 19 · 访问量 1294

猜你喜欢

转载自blog.csdn.net/weixin_42804692/article/details/103267141