Java基础知识篇【gitee】
https://snailclimb.gitee.io/javaguide
一、Java基本功
Java一次编译,字节码通过JVM,处处运行
jsp会转化为servlet,也要由jdk编译
OracleJDK性能更好,更稳定,但不开源
Java无指针访问内存,更安全。C++支持多重继承,Java接口可以多继承。C++字符串后默认加'\o'表示结束
小程序继承自JApplet,主类需要是public,嵌入浏览器调用init/run启动,无main方法
javax和java均为标准API的一部分,只是名字无区别
字符占2字节,存整数值,字符串存地址
单行/多行/文档注释
const和goto是Java保留字
泛型:通过安全检测机制,本质是参数化类型。通配符:TEKV?
==基本类型比较值,引用类型比较地址。equals等价于==比较地址
String类重写equals方法,在常量池中查找相同的,赋给引用变量
重写equals方法必须重写hashcode,hashset先判断hashcode再判断equals方法决定是否能够插入
Float和Double并未实现常量池,直接比较不相等
浅拷贝:基本类型值传递,引用类型引用传递;深拷贝引用类型创建新对象,并复制内容
二、Java面向对象
面向过程无需实例化类,性能高;面向对象灵活易于维护,但性能低(半编译,不能直接被执行)
执行子类构造前,会默认调用super无参构造(帮助子类进行初始化),因此需要在父类补充无参构造。
成员变量有默认初值
对象相等是内容相等,引用相等是内存地址 相等
子类拥有父类的所有属性和方法,但无法访问私有部分
静态方法可不通过对象调用,故静态方法中不能调用非静态变量,只能访问静态成员
String使用final修饰字符数组保存字符串,故String对象不可变。StringBuilder/StringBuffer保存字符串的数组没有用final修饰,故可变
String不可变,StringBuffer(性能提升不大)对方法加同步锁,均线程安全。
StringBuilder/StringBuffer继承AbstractStringBuilder类,包含expandCapacity,append,insert,indexOf等方法
Object类:getClass/hashCode/equals/clone/toString/notify/notifyAll/wait/finalize(垃圾回收时触发)
transient关键字阻止变量序列化
读取键盘输入:BufferedReader = (InputStreamReader(System.in))
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
String s = input.readLine();
三、Java核心技术
工具类方法
异常基类Throwable,两个子类Exception异常(能被程序本身处理)和Error错误
try...catch捕获异常,JDK7后使用try-with-resources释放资源,try声明资源无finally
线程是进程执行单位,也被称为轻量级进程
按流的角色可以分为节点流和处理流
输入流的基类InputStream/Reader,输出流的基类OutputStream/Writer
流操作:缓冲操作、文件操作、基本类型操作、对象序列化、转化控制、打印控制、管道操作、数组操作
BIO (Blocking I/O),同步阻塞I/O,读取写入在单个线程内完成;
NIO (Non-blocking/New I/O),同步非阻塞I/O,提供阻塞和非阻塞模式,适用于高负载,高并发;
AIO (Asynchronous I/O),也被称为NIO2,异步非阻塞的IO模型,基于事件和回调机制实现,执行完操作不会阻塞
Java基础知识篇【gitee】的更多相关文章
- 「Java面试题/知识点精华集」20000+字的Java基础知识篇(2020最新版) !
本文已经收录进我的 79K Star 的 Java 开源项目 JavaGuide:https://github.com/Snailclimb/JavaGuide (「Java学习+面试指南」一份涵盖大 ...
- 超详细的Java面试题总结(二)之Java基础知识篇
多线程和Java虚拟机 创建线程有几种不同的方式?你喜欢哪一种?为什么? 继承Thread类 实现Runnable接口 应用程序可以使用Executor框架来创建线程池 实现Callable接口. 我 ...
- 超详细的Java面试题总结(一)之Java基础知识篇
面向对象和面向过程的区别 面向过程: 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机.嵌入式开发.Linux/Unix等一般采用面向过程开发,性能是最重要的因 ...
- Java 基础知识(一)
Java基础知识篇: 一.关键字解释 1. final:修饰非抽象类,非抽象方法和属性, 以及修饰方法参数,代表“无法改变的”.出于对设计或者效率的考虑使用该关键字. final类无法被继承,fina ...
- 【Java面试】基础知识篇
[Java面试]基础知识篇 Java基础知识总结,主要包括数据类型,string类,集合,线程,时间,正则,流,jdk5--8各个版本的新特性,等等.不足的地方,欢迎大家补充.源码分享见个人公告.Ja ...
- Java 面试知识点解析(一)——基础知识篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- Java基础知识回顾之七 ----- 总结篇
前言 在之前Java基础知识回顾中,我们回顾了基础数据类型.修饰符和String.三大特性.集合.多线程和IO.本篇文章则对之前学过的知识进行总结.除了简单的复习之外,还会增加一些相应的理解. 基础数 ...
- 【Java面试】1、基础知识篇
[Java面试]基础知识篇 Java基础知识总结,主要包括数据类型,string类,集合,线程,时间,正则,流,jdk5--8各个版本的新特性,等等.不足的地方,欢迎大家补充. 源码分享:https: ...
- 【Java面试题系列】:Java基础知识常见面试题汇总 第一篇
文中面试题从茫茫网海中精心筛选,如有错误,欢迎指正! 1.前言 参加过社招的同学都了解,进入一家公司面试开发岗位时,填写完个人信息后,一般都会让先做一份笔试题,然后公司会根据笔试题的回答结果,确定 ...
- Java基础知识常见面试题汇总第一篇
[Java面试题系列]:Java基础知识常见面试题汇总 第一篇 文中面试题从茫茫网海中精心筛选,如有错误,欢迎指正! 1.前言 参加过社招的同学都了解,进入一家公司面试开发岗位时,填写完个人信息后 ...
随机推荐
- 面试突击87:说一下 Spring 事务传播机制?
Spring 事务传播机制是指,包含多个事务的方法在相互调用时,事务是如何在这些方法间传播的. 既然是"事务传播",所以事务的数量应该在两个或两个以上,Spring 事务传播机制的 ...
- python-函数-统计函数
#(1)amax(),amin() 作用:计算数组中的元素沿指定轴的最大值,最小值 import numpy as np x = np.random.randint(1,11,9).reshape(( ...
- H5与APP的交互框架(WebViewJavascriptBridge)
基本原理是: 把 OC 的方法注册到桥梁中,让 JS 去调用. 把 JS 的方法注册在桥梁中,让 OC 去调用.(注册自己,调用它人.) WebViewJavaScriptBridge 使用的基本步骤 ...
- 2022.9.17 Java第二次课总结
以下是本节课后的问题 首先是关于静态变量 在类中,使用 static 修饰符修饰的属性(成员变量)称为静态变量,也可以称为类变量,常量称为静态常量,方法称为静态方法或类方法,它们统称为静态成员,归整个 ...
- 手写编程语言-如何为 GScript 编写标准库
版本更新 最近 GScript 更新了 v0.0.11 版本,重点更新了: Docker 运行环境 新增了 byte 原始类型 新增了一些字符串标准库 Strings/StringBuilder 数组 ...
- doecker---制作DockerFile并上传Hub
一.DockerFile基础知识 FROM #基础镜像,一切从这里开始构建 MAINTAINER #镜像是谁写的,姓名+邮箱 RUN #镜像构建的时候需要运行的命令 ADD #添加内容,步骤,tomc ...
- 前端框架Vue------>第一天学习、Vue学习的路径、Vue官网(1)
文章目录 1.学习目标 2.前端知识体系 2.1 前端三要素 2.2.MVVM 3.第一个Vue程序 4.Vue实例的生命周期 vue的官方文档:https://cn.vuejs.org/ 1.学习目 ...
- 后端框架的学习----mybatis框架(3、配置解析)
3.配置解析 1.核心配置文件 2.环境配置(environment) 3.属性(properties) 可以通过properties属性来实现引用配置文件 这些属性可以在外部进行配置,并可以进行动态 ...
- Codeforces 1684 E. MEX vs DIFF
题意 给你n个非负整数的数列a,你可以进行K次操作,每次操作可以将任意位置的数数更改成任意一个非负整数,求操作以后,DIFF(a)-MEX(a)的最小值:DIFF代表数组中数的种类.MEX代表数组中未 ...
- C语言/python实现定时关机
1.python def shutdown(): print('(1)定时关机\n(2)取消定时关机\n(3)立即关机\n(4)关机重启') b = eval(input('请选择:\n')) if( ...