Java基础
Java基础
默辨
希望成为一个有思想的软件工程师
展开
-
Java知识总结,不止为了秋招(下)!!!
文章目录1、自我介绍2、设计模式3、排序算法4、集合类源码5、数据结构6、数据库7、JVM8、JUC及部分多线程底层9、项目10、面试题该知识分为两部分,(上)部分为Java技术体系,技术篇。(下)部分为Java基础知识,面试篇。Java知识总结,不止为了秋招(上)!!!本文更多的写的是我已经学过的知识点,我也明白,有的知识点依然太浅了。但学习嘛,就是不断完善自我的过程。还是那句话本文只适合收藏起来整理思路,梳理知识点,不适合当作具体的知识点参考学习。当然,如果你想学习具体的细节,欢迎查原创 2020-09-22 23:04:14 · 2217 阅读 · 0 评论 -
Java知识总结,不止为了秋招(上)!!!
文章目录1、Java基础2、Java进阶3、数据库4、前端5、Java Web6、SSM框架7、JVM8、Spring Boot框架9、Spring Cloud10、Redis、Vue、Elasticsearch写在前面:我想问大家一个问题,大家都说面试造火箭,工作拧螺丝。但是我真的在实习的时候发现,公司的项目给我难哭了。公司是一个金融公司,先不说代码上的各种配置,光是那些概念就给我弄的晕头转向的。那些培训机构都说自己的项目如何如何,但是我看了以后感觉也就那样呀,但是为什么我的工作项目差这么多?是公司项原创 2020-09-11 22:29:41 · 422 阅读 · 0 评论 -
6个基础位运算符和4个逻辑运算符
写在前面:大大小小的位运算和逻辑运算,自己见的倒是挺多的,也基本没有错误。但是上次在面试的时候,面试官问我请你说说Java的位运算有哪些,我脑子一下就乱了,你要是考我答案我倒是知道,但是让我自己全部说出来,就有难度了。于是,借此机会做一个总结。。。。。。然后再次反思了自己所学的知识,认为一定要有相应的体系结构,不然知识就是乱的(感觉自己学了很多,但真的让你说的时候,又没有对应的主线将知识串起来),而且极易忘记。文章目录1、6个基础位运算符2、4个逻辑运算符1、6个基础位运算符基础位运算,.原创 2020-06-27 11:46:55 · 1190 阅读 · 0 评论 -
成员变量和局部变量详解
好吧,我承认我有赌的成分。我以为我能赌出答案,结果赌输了。还得利用JVM的知识点进行运算。文章目录1、考点:2、局部变量和成员变量的区别3、具体的测试代码4、过程分析(重点)5、补充1、考点:就近原则变量的分类成员变量:类变量、实例变量局部变量非静态代码块的执行:每次执行实例对象都会执行方法的调用规则:调用一次执行一次2、局部变量和成员变量的区别1、声明位置局部变量:方法体{}中、形参、代码块{}中成员变量:类中方法外类变量:有static修饰实例.原创 2020-06-10 10:19:53 · 7156 阅读 · 2 评论 -
方法参数的传递机制
写在前面:一看到这种题目,我就想到了我最开始学习Java时教材前几页的那个题目,想表达的就是引用数据类型的传值和基本数据类型传值的区别(一个是地址,一个是数字)今天我又站在了JVM的角度重新审视了这道题,发现理解起来轻松了很多。特意做一个分享!!!文章目录1、方法的参数传递机制2、知识前提2.1、Integer数据在不同情况下存储位置的不同2.2、String类型是不可变性2.3、引用数据类型和基本数据类型存放的位置不同3、实际代码4、赋值操作的内存分布4.1、前5行赋值操作的内存分布4.2、.原创 2020-06-10 09:16:06 · 1236 阅读 · 0 评论 -
类的初始化和实例化之间的关系
文章目录1、加载的基本概念1.1、类的初始化过程1.2、类的实例化过程1.3、方法的重写Override2、测试程序分析2.1、第一步2.2、第二布2.3、最终的测试代码1、加载的基本概念如果有JVM的基础,那么接下来的概念你就能更好的理解1.1、类的初始化过程一个类要创建实例需要先加载并初始化该类main方法所在的类需要先加载和初始化一个子类要初始化需要先初始化父类一个类初始化就是执行 <clint>() 方法<clint>() )方法由①静态类原创 2020-06-10 08:29:32 · 1343 阅读 · 1 评论 -
终于弄明白 i = i++和 i = ++i 了
写在前面:前些天看完了JVM的内存结构,自以为自己是懂了,心里想想不就是分线程共享和线程私有嘛,然后又怎么怎么分怎么怎么的嘛…直到遇到了这道题目。说句实话,曾经自己做这种运算题目,完全是靠脑子空想,然后拿上笔颤抖的写下一个自己都不知道正不正确的答案。不过过了今天,我终于能确定它的答案了。为此,我也专门写一篇博客,记录我的学习!!!文章目录1、题目2、分析2.1、第一步2.2、第二步2.3、第三步2.4、第四步2.5、结果3、i = ++i1、题目package pers.mobian..原创 2020-06-09 15:54:57 · 34719 阅读 · 98 评论 -
int、String、char、Array之间的转换,这一篇够了!!!
前段时间开始刷LeetCode上面的题目,想着数据结构不会,我先做做简单的算法题目吧。好家伙,拿到题目,发现最基础的数据类型的转换都不知到,然后进入了小自闭。所以今天就集中整理了一下,最最最基础的四种数据格式的转换,帮助自己学习,也希望对你们有帮助!!!文章目录1、int与String转换2、int与char转换3、String与Array转换4、String与char转换5、其他1、...原创 2020-05-04 18:32:17 · 2000 阅读 · 2 评论 -
网络编程知识点复习(第一次)
对于该板块的学习,个人目前觉得侧重思路、概念的学习(所以计算机网络就很有必要去学习了),因为我们在真实的开发中,不会直接使用这种开发方式,都是对它进行了封装文章目录1、概述2、网络基本要素3、IP、端口4、通信协议 (重点)4.1、TCP4.2、UDP4.3、URL类5、思维导图1、概述对于网络要有一定的认识,为接下来的javaWeb打下基础。不过java网络编程中对于网络的细节讲述不是...原创 2020-04-08 10:52:28 · 467 阅读 · 0 评论 -
多线程知识点复习(第一次)
由于在我现阶段的学习过程中,接触的大都是单线程程序,所以对该板块的知识点总是差点味道。不过这些都是基础,很多东西最开始是不需要明白为什么的!!!文章目录1、线程实现1.1、继承Thread类(重点)1.2、实现Runnable接口(重点)1.3、实现Callable接口(了解)1.4、多线程的底层2、Lambda表达式2.1、学会五种类的定义2.2、Lambda表达式的简化3、线程状态(重要)3...原创 2020-04-07 10:39:43 · 374 阅读 · 0 评论 -
反射注解知识点复习(第一次)
知识梳理1、注解1.1、基础常识始于JDK1.5可以使用在包、类、字段、方法、局部变量、方法参数等的前面1.2、内置注解@Override:用于重写超类的方法java.lang.Override包下@Deprecated:用于标记过时的方法、属性或类java.lang.Deprecated包下@SuppressWarnings():抑制警告信息。需要添加...原创 2020-04-06 18:29:09 · 211 阅读 · 0 评论 -
Vector知道这些差不多够了
文章目录1、概述2、基本组成2.1、成员方法2.2、构造方法2.3、成员方法3、代码编写上4、总结1、概述我以为Vector貌似使用的并不是很多,如果想学习该集合,一定要把ArrayList集合看明白,因为两者相同的太多了。在学习Vector集合的时候,我们可以简单的理解成加了锁的ArrayList。由于与ArrayList数据结构相同,所以我们接下来的讲解都是与ArrayList...原创 2020-04-05 18:00:01 · 223 阅读 · 0 评论 -
教你手写LinkedList集合
我相信学习过ArrayList的源码的小伙伴对于集合的概念应该不陌生吧。以前是正着来,这次我们反着来。先手写一一个我们理解的LinkedList,再回去观察源码和我们代码之间的区别。如果对于ArrayList集合比较陌生的,可以先去学习一下它的底层源码,我认为对你绝对有帮助传递门ArrayList的源码解析文章目录1、ArrayList引发的思考2、手写LinkedList简易版(单链表)...原创 2020-04-05 15:25:40 · 545 阅读 · 0 评论 -
老掉牙的ArrayList解析它它它又来了
由于本人对多线程板块知识理解的深度不够,所以本文结合了网上面试题的同时略过了ArrayList与多线程结合的题目,或许那才是重点。不过咱们是初学者,先了解就行,不用深究。文章目录1、List概述2、ArrayList基本概述3、常见的ArrayList面试题3.1、ArrayList是如何进行扩容的3.2、为什么ArrayList获取集合的长度是使用size,而不是使用length3.3、A...原创 2020-04-02 20:37:45 · 622 阅读 · 1 评论 -
一句一句的读ArrayList源码(代码基于JDK11)
在我们的面试中ArrayList也是一个很基础的知识点,本文就带你一起学习ArrayList的部分源码。如果有不正确的地方,欢迎指正。祝你学习愉快。由于网上大部分的解析都是基于JDK8的,然而我的JDK是11。所以我就来写一篇ArrayList在JDK11中的源码剖析。如果8的和11的变化较大,我还会写关于8和11的区别源码部分较多,一次读不完,可以收藏了下次再读文章目录1、ArrayL...原创 2020-04-02 16:42:12 · 434 阅读 · 1 评论 -
HashMap原理剖析
作者疑问???其实对于HashMap我又一点没有明白。为什么一定要将链表转换成红黑树的阈值设置为8?注释也说了,根据泊松分布,能够到达8个的已经是亿分之6,几率十分小,那为什么又要在最后的那个节点,来进行转换呢?这不是白白浪费空间?网上和很多视频都说,因为8的时候,链表的平均查找长度为4,链表的查找长度为3。但是此时红黑树会多占用很多内存空间呀。并且超过了8,等到删除元素往回走的时候,只有到了...原创 2020-03-31 21:00:40 · 574 阅读 · 0 评论 -
HashMap源码剖析(代码基于JDK11)
在我们的面试中HashMap基本上是一个逃不开的知识点,本文就带你一起学习HashMap的部分源码。如果有不正确的地方,欢迎指正。祝你学习愉快。由于网上大部分的解析都是基于JDK1.8的,然而我的JDK是11。所以我就来写一篇HashMap在JDK11中的源码剖析。如果后面有机会,我会再写关于1.8的(不过貌似源码差不多)。文章目录1、类的基本关系2、成员变量3、构造方法4、成员方法...原创 2020-03-31 17:34:34 · 354 阅读 · 0 评论 -
利用URL对网络资源进行下载(简制版)
利用URL对网络资源进行下载以下载网易云付费歌曲为例:1、在IDEA中编写如下代码package pers.mobian.udp;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;impo...原创 2020-01-21 17:38:35 · 482 阅读 · 0 评论 -
网络编程知识总结
网络编程1、概述计算机网络:计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。网络编程目的:无限电台、传播交流信息、数据交换、通信…想要达到这个效果需要什么:如何准确的定位网络上的一台主机 ip地址:端口,定位到这个计算机上的某个资源找到了这个主机...原创 2020-01-21 17:10:18 · 221 阅读 · 0 评论 -
注解和反射知识总结
注解Java.Annotation1、注解入门什么是注解?Annotation是从JDK5.0以后引入的新技术Annotation的作用不是程序本身,可以对程序作出解释(这一点和注解(comment)没什么区别)可以被其他程序(比如:编译器)读取Annotation的格式:注解是以“@注释名”在代码中存在的,还可以添加一些参数值,例如:@SuppressWarnin...原创 2020-01-19 15:41:20 · 498 阅读 · 0 评论 -
多线程知识总结
多线程1、线程简介1、关键字:任务、进程、进程、多线程2、普通方法调用和多线程3、核心概念线程是独立的执行路劲在程序运行时,及时没有自己创建线程,后台也会有多个线程,如主线程,gc线程main()称之为主线程,为系统的入口,用于执行整个程序在一个进程中,如果开辟了多个线程,线程的运行由调度器安排调度,调度器是与OS密切相关的,先后顺序是不能人为的干预的对于同一份资源操作时...原创 2020-01-17 18:36:20 · 734 阅读 · 0 评论 -
面向对象三大特性之——多态
面向对象三大特性之——多态一、引言此篇文章来自一个初学Java不久的学生,内容的用词、深度、广度甚至部分理解不够到位,再加上Markdown语法的不熟练,所以排版不够美观。但还是希望有疑问的读者能够读完全文,大家遇到问题可以一起交流。谢谢!二、初步理解多态多态,顾名思义一种东西的多种形态。那面向对象里面为什么或者说哪里来的多态?要想顺理的理解多态,就需要你对封装和继承又很好的理解。内容可以...原创 2019-10-02 21:53:31 · 337 阅读 · 0 评论 -
面向对象三大特性之——封装
面向对象三大特性之——封装一、引言此篇文章来自一个初学Java不久的学生,内容的用词、深度、广度甚至部分理解不够到位,再加上Markdown语法的不熟练,所以排版不够美观。但还是希望有疑问的读者能够读完全文,大家遇到问题可以一起交流。谢谢!二、类和对象的初步理解类:使用一个通用类来定义同一类型的对象。类是一个模板或者称为合约,用来定义对象的数据域是什么以及方法是做什么的。对象:对象代表现...原创 2019-10-02 16:14:07 · 823 阅读 · 0 评论 -
面向对象三大特性之——继承
面向对象三大特性之——继承一、引言此篇文章来自一个初学Java不久的学生,内容的用词、深度、广度甚至部分理解不够到位,再加上Markdown语法的不熟练,所以排版不够美观。但还是希望有疑问的读者能够读完全文,大家遇到问题可以一起交流。谢谢!二、作者初识继承最开始接触继承是在Java知识体系里面的。我最开始的理解,继承是Java语法里面的一个特性。其实这是错误的,Java属于面向对象编程语...原创 2019-10-01 23:01:25 · 739 阅读 · 0 评论 -
面向过程编程和面向对象编程的区别
面向过程编程和面向对象编程的区别此篇文章来自一个初学Java不久的学生,内容的用词、深度、广度甚至部分理解不够到位,再加上Markdown语法的不熟练,所以排版不够美观。但还是希望有疑问的读者能够读完全文,大家遇到问题可以一起交流。谢谢!一、引言:无论是哪种语言,我们最终的目的都是希望设计这个语言来解决我们现实生活需要解决的问题。当然,你也要明白,我们现实生活中出现的软件程序绝不是一个简单...原创 2019-10-01 14:42:06 · 1498 阅读 · 0 评论