java基础
qq_34207444
这个作者很懒,什么都没留下…
展开
-
Java 构造函数的详解
我们人出生的时候,有些人一出生之后再起名字的,但是有些人一旦出生就已经起好名字的。那么我们在java里面怎么在对象一旦创建就赋值呢?1.构造方法的作用:构造方法作用:对对象进行初始化.如图:2.构造函数与普通函数的区别:(1). 一般函数是用于定义对象应该具备的功能。而构造函数定义的是,对象在调用功能之前,在建立时转载 2017-11-03 10:20:14 · 156 阅读 · 0 评论 -
JVM内存结构分析
对于Java程序员来说,内存是由JVM自动管理的,所以一旦出现内存泄漏或溢出的问题,不了解JVM的内存结构和各个内存区域的工作职责,将对解决问题带来很大的麻烦,本文参照周志明的《深入理解Java虚拟机》,介绍JVM的内存结构,比较枯燥,但对知其然,不知所以然的编码人员来说还是有一定帮助的。 按照Java虚拟机规范的规定,JVM自动管理的内存将会包括以下几个运行时数据区域。 程序计数器 ...转载 2018-07-14 17:27:46 · 144 阅读 · 0 评论 -
深入理解Java反射
要想理解反射的原理,首先要了解什么是类型信息。Java让我们在运行时识别对象和类的信息,主要有2种方式:一种是传统的RTTI,它假定我们在编译时已经知道了所有的类型信息;另一种是反射机制,它允许我们在运行时发现和使用类的信息。1、Class对象 理解RTTI在Java中的工作原理,首先需要知道类型信息在运行时是如何表示的,这是由Class对象来完成的,它包含了与类有关的信息。Class对...转载 2018-08-18 17:42:04 · 151 阅读 · 0 评论 -
Http Header里的Content-Type
之前一直分不清楚post请求里Content-Type方式,如application/x-www-form-urlencoded、multipart/form-data。本文会介绍Content-Type有哪几种、插件Postman和RESTClient使用示例。文末还会介绍在PHP中CURL里需要注意的细节。简介Http Header里的Content-Type一般有这三种:applic...转载 2018-10-30 22:31:14 · 142 阅读 · 0 评论 -
ArrayList和LinkedList的区别
ArrayList和Vector使用了数组的实现,可以认为ArrayList或者Vector封装了对内部数组的操作,比如向数组中添加,删除,插入新的元素或者数据的扩展和重定向。LinkedList使用了循环双向链表数据结构。与基于数组ArrayList相比,这是两种截然不同的实现技术,这也决定了它们将适用于完全不同的工作场景。LinkedList链表由一系列表项连接而成。一个表项总是包含3...转载 2019-03-08 14:23:22 · 89 阅读 · 0 评论 -
java反射(特别通俗易懂)
反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码))一、反射的概述JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类...转载 2019-03-06 11:53:31 · 309 阅读 · 0 评论 -
java的动态代理机制详解
在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是java的动态代理机制,所以本篇随笔就是对java的动态机制进行一个回顾。在java的动态代理机制中,有两个重要的类或接口...转载 2019-03-06 16:04:13 · 91 阅读 · 0 评论 -
java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一
转 https://www.cnblogs.com/coprince/p/8603492.html对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下。本文参考java 泛型详解、Java中的泛型方法、 java泛型详解1. 概述泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。什么是泛...转载 2019-03-06 17:16:08 · 165 阅读 · 0 评论 -
匿名内部类
https://www.cnblogs.com/chenssy/p/3390871.html在java提高篇-----详解内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客。在这篇博客中你可以了解到匿名内部类的使用、匿名内部类要注意的事项、如何初始化匿名内部类、匿名内部类使用的形参为何要为final。一、使用匿名内部类内部类匿名内...转载 2019-03-07 11:29:49 · 199 阅读 · 0 评论 -
JVM 类加载机制
JVM 虚拟机执行 class 字节码的过程可以分为七个阶段:加载、验证、准备、解析、初始化、使用、卸载。内存分配的对象。Java 中的变量有「类变量」和「类成员变量」两种类型,「类变量」指的是被 static 修饰的变量,而其他所有类型的变量都属于「类成员变量」。在准备阶段,JVM 只会为「类变量」分配内存,而不会为「类成员变量」分配内存。「类成员变量」的内存分配需要等到初始化阶段才开...转载 2019-06-13 15:08:23 · 102 阅读 · 0 评论 -
java内存模型
网上有很多关于Java内存模型的文章,在《深入理解Java虚拟机》和《Java并发编程的艺术》等书中也都有关于这个知识点的介绍。但是,很多人读完之后还是搞不清楚,甚至有的人说自己更懵了。本文,就来整体的介绍一下Java内存模型,目的很简单,让你读完本文以后,就知道到底Java内存模型是什么,为什么要有Java内存模型,Java内存模型解决了什么问题等。本文中,有很多定义和说法,都是笔者自己理解后定...转载 2018-07-14 14:30:15 · 101 阅读 · 0 评论 -
JVM内存结构
所有的Java开发人员可能会遇到这样的困惑?我该为堆内存设置多大空间呢?OutOfMemoryError的异常到底涉及到运行时数据的哪块区域?该怎么解决呢?其实如果你经常解决服务器性能问题,那么这些问题就会变的非常常见,了解JVM内存也是为了服务器出现性能问题的时候可以快速的了解那块的内存区域出现问题,以便于快速的解决生产故障。 先看一张图,这张图能很清晰的说明JVM内存结构布局。Java的内存结...转载 2018-07-14 14:29:08 · 90 阅读 · 0 评论 -
sierrajuan ArrayList和LinkedList的区别
ArrayList和Vector使用了数组的实现,可以认为ArrayList或者Vector封装了对内部数组的操作,比如向数组中添加,删除,插入新的元素或者数据的扩展和重定向。LinkedList使用了循环双向链表数据结构。与基于数组ArrayList相比,这是两种截然不同的实现技术,这也决定了它们将适用于完全不同的工作场景。LinkedList链表由一系列表项连接而成。一个表项总转载 2017-11-21 17:53:58 · 102 阅读 · 0 评论 -
设计模式(一) 工厂模式 五种写法总结
转载请标明出处: http://blog.csdn.net/zxt0601/article/details/52798423本文出自:【张旭童的博客】系列开篇瞎BB设计模式相关的文章学习与总结,一直有意为之,一直又觉得时机不到。一 是怕自己代码经验还不够,学习了也不懂,强行理解没有意义。二 是怕自己学习了以后总结出来,万一有不对的地方,误人子弟。而在现在的公司摸爬滚打半年后,感觉自己写代码遇到了瓶...转载 2018-03-07 16:32:01 · 113 阅读 · 0 评论 -
用画小狗的方法来解释Java中的值传递
本文是Effective Java专栏Java虚拟机专题的第九讲,如果你觉得看完之后对你有所帮助,欢迎订阅本专栏,也欢迎您将本专栏分享给你身边的工程师同学。另:笔者的个人博客 Bridge for You 已经上线,欢迎大家前去坐坐,喝茶侃大山!在开始看我画小狗之前,咱们先来看道很简单的题目: 下面程序的输出是什么?Dog myDog = new Dog("旺财");changeName(myD...转载 2018-03-07 21:26:04 · 167 阅读 · 0 评论 -
static关键字的四种用法
在java的关键字中,static和final是两个我们必须掌握的关键字。不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构。下面我们先来了解一下static关键字及其用法。static关键字1.修饰成员变量在我们平时的使用当中,static最常用的功能就是修饰类的属性和方法,让他们成为类的成员属性和方法,我们通常将用static修饰的成员称为类成员或...转载 2018-03-08 12:33:51 · 98 阅读 · 0 评论 -
九种基本数据类型,以及他们的封装类
基本类型大小(字节)默认值封装类byte1(byte)0Byteshort2(short)0Shortint40Integerlong80LLongfloat40.0fFloatdouble80.0dDoubleboolean-falseBooleanchar2\u0000(null)Charactervoid--Void基本类型所占的存储空间是不变的:这种不变性也是java具有可移植性的原因之一...转载 2018-02-20 10:32:11 · 242 阅读 · 0 评论 -
ArrayList和LinkedList的区别
ArrayList和LinkedList是常用的两种存储结构,那么它们有哪些区别呢?这里简单给出一部分。 1、ArrayList和LinkedList可想从名字分析,它们一个是Array(动态数组)的数据结构,一个是Link(链表)的数据结构,此外,它们两个都是对List接口的实现。前者是数组队列,相当于动态数组;后者为双向链表结构,也可当作堆栈、队列、双端队列2、当随机访问List时(get和s...转载 2018-02-20 11:13:48 · 110 阅读 · 0 评论 -
浅谈Java中的hashcode方法
哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率。在Java的Object类中有一个方法:1public native int hashCode(); 根据这个方法的声明可知,该方法返回一个int类型的数值,并且是本地方法,因此在Object类中并没有给出具体的实现。 为何Object类需要这样一个方法?它有什么作用呢?今天我们就来具体探讨一下hashC...转载 2018-02-20 15:26:49 · 86 阅读 · 0 评论 -
解析Java反射
一、回顾:什么是反射?反射(Reflection)是Java 程序开发语言的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性。Oracle官方对反射的解释是Reflection enables Java code to discover information about the fields, methods and constructors of load...转载 2018-02-20 16:46:00 · 141 阅读 · 0 评论 -
单例模式懒汉与饿汉
懒汉:在初始化类的时候,不创建唯一的实例,而是等到真正需要用到的时候才创建。必须加上同步,否则有可能依然创建多个实例。饿汉:在初始化的时候,就创建了唯一的实例,不管是否需要用到。不需要自己加同步,一定产生唯一的实例。懒汉代码public class Singleton{ // 私有的、静态的成员保存唯一的实例 private static Singleton inst; ...转载 2018-02-20 22:58:21 · 7782 阅读 · 0 评论 -
stream 分组汇总
@Test public void testsimpleGroup2() { User user1 = new User("zhangsan", "beijing", 10); User user2 = new User("zhangsan", "beijing", 20); User user4=new User("zhangsan", ...原创 2019-06-11 17:09:20 · 5610 阅读 · 0 评论