![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
文章平均质量分 92
CodingLemon.
blog:http://www.codinglemon.cn/
展开
-
面向对象思想和设计原则
欢迎访问我的blog http://www.codinglemon.cn/1. 面向对象编程的思想抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面,抽象只关注对象的哪些属性和行为,并不关注这此行为的细节是什么。封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口.面向对象的本质就是将现实世界描绘成一系列完全自治,封闭的对象,可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口。封装给对象提供了隐藏内部特性和行为的能力.原创 2021-05-10 21:14:41 · 229 阅读 · 0 评论 -
Java内存区域
1.运行时数据区Java 虚拟机在执行 Java 程序的过程中会把它管理的内存划分成若干个不同的数据区域。这些组成部分一些是线程私有的,其他的则是线程共享的。线程私有的:程序计数器虚拟机栈本地方法栈线程共享的:堆方法区直接内存1.1 程序计数器程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等功能都需要依赖这个计数器来完成。另外,为了线原创 2021-03-16 15:43:58 · 44 阅读 · 0 评论 -
12.集合
欢迎访问博主的blog:coding lemon’s blog1.集合概述1.1 Java集合概述从下图可以看出,在 Java 中除了以 Map 结尾的类之外, 其他类都实现了 Collection 接口。并且,以 Map 结尾的类都实现了 Map 接口。1.2 List、Set、Map三者的区别List(对付顺序的好帮手): 存储的元素是有序的、可重复的。Set(注重独一无二的性质): 存储的元素是无序的、不可重复的。Map(用 Key 来搜索的专家): 使用键值对(kye-val.原创 2020-12-22 10:52:40 · 103 阅读 · 0 评论 -
11. BIO、NIO、AIO
你知道的越多,你不知道的越多。欢迎访问我的blog:http://www.codinglemon.cnJava 中的 BIO、NIO和 AIO 理解为是 Java 语言对操作系统的各种 IO 模型的封装。程序员在使用这些 API 的时候,不需要关心操作系统层面的知识,也不需要根据不同操作系统编写不同的代码。只需要使用Java的API就可以了。在讲 BIO,NIO,AIO 之前先来回顾一下这样几个概念:同步与异步,阻塞与非阻塞。关于同步和异步的概念解读困扰着很多程序员,大部分的解读都会带有自己的一点.原创 2020-11-23 19:39:48 · 113 阅读 · 0 评论 -
10. 代理模式
你知道的越多,你不知道的越多,欢迎访问我的blog:http://www.codinglemon.cn/1. 代理模式 代理模式是一种比较好的理解的设计模式。简单来说就是我们使用代理对象来代替对真实对象(real object)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。 代理模式的主要作用是扩展目标对象的功能,比如说在目标对象的某个方法执行前后你可以增加一些自定义的操作。 代理模式有静态代理和动态代理两种实现方式,我们 先来看一下静态代理模式的实.原创 2020-11-23 15:31:44 · 74 阅读 · 0 评论 -
9. Java反射机制
1.反射机制介绍 JAVA 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 java 语言的反射机制。2. 获取Class对象的四种方式 如果我们动态获取到这些信息,我们需要依靠 Class 对象。Class 类对象将一个类的方法、变量等信息告诉运行的程序。Java 提供了四种方式获取 Class 对象:2.1 知道具体类的情况下可以使用:Class alunbar原创 2020-11-22 16:18:31 · 76 阅读 · 2 评论 -
6.Java基础其他细碎知识点
博客链接: Coding Lemon’s blog Java知识、面试总结、LeetCode题目解析等持续更新1.正确使用equals方法这样使用一个equals方法会空指针异常。// 不能使用一个值为null的引用类型变量来调用非静态方法,否则会抛出异常String str = null;if (str.equals("SnailClimb")) { ...} else { ..}可以这样改写:"SnailClimb".equals(str);// false 不过更推.原创 2020-11-16 19:43:06 · 88 阅读 · 0 评论 -
7.final,static,this,super关键字总结
博客链接: Coding Lemon’s blog Java知识、面试总结、LeetCode题目解析等持续更新1.final关键字final关键字,意思是最终的、不可修改的,最见不得变化 ,用来修饰类、方法和变量,具有以下特点:final修饰的类不能被继承,final类中的所有成员方法都会被隐式的指定为final方法;final修饰的方法不能被重写;final修饰的变量是常量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不.原创 2020-11-16 19:38:35 · 47 阅读 · 0 评论 -
Get与Post的区别,你真的了解吗?
GET和POST是HTTP请求的两种基本方法,要说它们的区别,最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。具体区别如下:GET在浏览器回退时是无害的,而POST会再次提交请求。GET产生的URL地址可以被Bookmark,而POST不可以。GET请求会被浏览器主动cache,而POST不会,除非手动设置。GET请求只能进行url编码,而POST支持多种编码方式。GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会原创 2020-10-23 10:46:28 · 69 阅读 · 0 评论 -
6. Java枚举
1.概览enum关键字在 java5 中引入,表示一种特殊类型的类,其总是继承java.lang.Enum类.枚举在很多时候会和常量拿来对比,可能因为本身我们大量实际使用枚举的地方就是为了替代常量。那么这种方式由什么优势呢?以这种方式定义的常量使代码更具可读性,允许进行编译时检查,预先记录可接受值的列表,并避免由于传入无效值而引起的意外行为。下面示例定义一个简单的枚举类型 pizza 订单的状态,共有三种 ORDERED, READY, DELIVERED状态:package shuang.ko原创 2020-10-23 10:44:55 · 79 阅读 · 0 评论 -
5.异常、文件与I/O流
1.异常1.1 Error与Exception在 Java 中,所有的异常都有一个共同的祖先 java.lang 包中的 Throwable 类。Throwable: 有两个重要的子类:Exception(异常) 和 Error(错误) ,二者都是 Java 异常处理的重要子类,各自都包含大量子类。Error(错误):是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,Java 虚拟机运行错误(Vir原创 2020-10-13 19:15:00 · 85 阅读 · 0 评论 -
4.构造方法、成员变量与局部变量、StringBuffer与StringBuillder、Object类
1.构造器Constructor是否可以被override?Constructor 不能被 override(重写),但是可以 overload(重载),所以你可以看到一个类中有多个构造函数的情况。2.Java中定义一个空的构造方法的作用Java 程序在执行子类的构造方法之前,如果没有用 super()来调用父类特定的构造方法,则会调用父类中“没有参数的构造方法”。因此,如果父类中只定义了有参数的构造方法,而在子类的构造方法中又没有用 super()来调用父类中特定的构造方法,则编译时将发生错误,因为原创 2020-10-10 16:24:32 · 278 阅读 · 0 评论 -
3. 基本数据类型、方法、重载与重写、深拷贝与浅拷贝
1.Java中8种基本数据类型基本类型位数字节默认值int3240short1620long6480Lbyte810char162‘u0000’float3240fdouble6480dboolean1false1.1自动装箱与拆箱装箱: 将基本类型用它们对应的引用类型包装起来;拆箱:将包装类型转换为基本数据类型;具体可见深入剖析 Java 中的装箱和拆箱1.2 8种基本类型原创 2020-09-23 16:16:11 · 139 阅读 · 0 评论 -
2. Java泛型、equals()、hashcode
1.泛型 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。 Java的泛型是伪泛型,这是因为Java在编译期间,所有的泛型信息都会被擦掉,这也就是通常所说类型擦除 。List<Integer> list = new ArrayList<>();list.add(12);//这里直接添加会报错list.a原创 2020-09-22 15:52:06 · 622 阅读 · 0 评论 -
1. JVM、JDK、JRE
1.JVM Java 虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM 有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会给出相同的结果。 什么是字节码?采用字节码的好处是什么? 在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以 Jav原创 2020-09-16 15:23:22 · 122 阅读 · 0 评论