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.前言 参加过社招的同学都了解,进入一家公司面试开发岗位时,填写完个人信息后 ...
随机推荐
- Python 类型提示简介
Python 3.6+ 版本加入了对"类型提示"的支持. 这些"类型提示"是一种新的语法(在 Python 3.6 版本加入)用来声明一个变量的类型. 通过声明 ...
- python中限定导入的子模块
如果包定义文件__init__.py中存在一个叫做__all__的列表变量,那么在使用from package import *的时候就把这个列表中的所有名字作为要导入的模块名. 例如在example ...
- .NET下数据库的负载均衡(有趣实验)
相关下载: 数据库的负载均衡-示例代码(dp1-DbBalance.rar) 数据库的负载均衡-示例代码(dp1-DbBalance.rar) 支持.Net/.Net Core/.Net Framew ...
- git-secret:在 Git 存储库中加密和存储密钥(上)
当涉及处理机密信息(如密码.令牌.密钥文件等)等,以下问题值得考虑: 安全性十分重要,但高安全性往往伴随着高度的不便. 在团队中,共享某些密钥有时无法避免(因此现在我们需要考虑在多人之间分发和更新密钥 ...
- 企业MES系统与ERP信息集成要素有哪些?
关于要讲明企业MES系统与ERP信息集成要素有哪些,得先弄清楚他们之间的关系:从工厂的管理来说,ERP在上MES在下,ERP统领企业全局包括MES,为管理层服务,重心在于企业决策,ERP对企业宏观管理 ...
- 220726 T2 Multisets (思维)
题目描述 我们说一个可重集 AA 比可重集 BB 小,当且仅当对于两个可重集中出现次数不同的最小元素 xx ,元素 xx 在 AA 中出现次数更多. 例如,可重集 {1,2,3}1,2,3 就比可重集 ...
- 洛谷P3870 [TJOI2009] 开关 (线段树)
简单的省选题...... 打异或标记即可. 1 #include<bits/stdc++.h> 2 const int N=2e5+10; 3 using namespace std; 4 ...
- day50-正则表达式01
正则表达式01 5.1正则表达式的作用 正则表达式的便利 在一篇文章中,想要提取相应的字符,比如提取文章中的所有英文单词,提取文章中的所有数字等. 传统方法是:使用遍历的方式,对文本中的每一个字符进行 ...
- python爬虫下载小说
1. from urllib.request import urlopen from urllib import request from bs4 import BeautifulSoup from ...
- 【React】学习笔记(一)——React入门、面向组件编程、函数柯里化
课程原视频:https://www.bilibili.com/video/BV1wy4y1D7JT?p=2&spm_id_from=pageDriver 目录 一.React 概述 1.1.R ...