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.前言 参加过社招的同学都了解,进入一家公司面试开发岗位时,填写完个人信息后 ...
随机推荐
- 使用TLS安全的访问Minio服务
官方文档地址:http://docs.minio.org.cn/docs/master/how-to-secure-access-to-minio-server-with-tls 查看这篇文章的操作步 ...
- EFK-4::ElasticSearch集群TLS加密通讯
转载自:https://mp.weixin.qq.com/s?__biz=MzUyNzk0NTI4MQ==&mid=2247483822&idx=1&sn=6813b22eb5 ...
- 查询nginx访问日志中访问次数最多的前10个IP地址
cat log | cut -d ' ' -f 1 | sort | uniq -c | sort -nr | awk '{print $0}' | head -n 10
- logstash安装插件修改使用的gem源
gem source -l # 查看当前使用的gem源 gem source --remove https://rubygems.org/ # 移除gem源 gem source -a https:/ ...
- Fluent插件管理
官方文档地址:https://docs.fluentd.org/deployment/plugin-management 命令fluent-gem是Fluentd用来安装插件的,它是gem命令的包装器 ...
- 密码学奇妙之旅、02 混合加密系统、AES、RSA标准、Golang代码
CTR 计数器模式 计数器模式CTR是分组密码模式中的一种.通过将逐次累加的计数器进行加密来生成密钥流的流密码.每次加密时会生成一个不同的值来作为计数器的初始值. 可以事先进行加密.解密的准备. 加密 ...
- 220722 T3 石子染色 (背包)
序列s中的数就是要选的堆的编号,假设要选的有i个石子,这i个染为红色,剩下j个染为蓝色,i+j=x,i=x-j,那么对答案的贡献是|x-2j|.那么只要我们选的有i个石子,贡献就是这么多,所以我们可以 ...
- ASP.NET Core :中间件系列(三):中间件限流
中间件 微软官网定义: 中间件 中间件意思就是处理请求和响应的软件: 1.选择是否将请求传递到管道中的下一个组件. 2.可在管道中的下一个组件前后执行工作. 对中间件类 必须 包括以下 具有类型为 R ...
- 用copyof来复制数组
public static void main(String[] args) { //Arrays.copyOf将数组复制到另一个数组,截断.扩容 String[] a={"1", ...
- 前端框架Vue------>第一天学习、Vue学习的路径、Vue官网(1)
文章目录 1.学习目标 2.前端知识体系 2.1 前端三要素 2.2.MVVM 3.第一个Vue程序 4.Vue实例的生命周期 vue的官方文档:https://cn.vuejs.org/ 1.学习目 ...