4 小白学长k

中软国际科技服务有限公司 - 软件工程师

我要认证

平平无奇的互关小天才

等级
TA的排名 8w+

JDK1.8——Java对象的创建过程

对象的创建Java是一门面向对象的编程语言,Java程序运行过程中无时无刻都有对象被创建出来。对象创建过程概述对象的创建过程如图:这里解释一下什么是符号引用:符号引用: 符号引用是一个字符串,它给出了被引用的内容的名字并且可能会包含一些其他关于这个被引用项的信息——这些信息必须足以唯一的识别一个类、字段、方法。这样,对于其他类的符号引用必须给出类的全名。对于其他类的字段,必须给出类名、字段名以及字段描述符。对于其他类的方法的引用必须给出类名、方法名以及方法的描述符。这样我们就能根据符号引用锁定

2020-08-16 20:22:20

JDK1.8——Java对象的访问定位:对象的访问方式,句柄访问、指针访问、reference

创建对象自然是为了后续使用该对象,我们的Java程序会通过栈上的reference数据来操作堆上的具体对象。 对象的访问方式是由虚拟机的实现而决定的,主流的访问方式主要有两种:通过句柄 和 使用指针通过句柄访问使用句柄访问,Java堆中将可能会划分出一块内存用来作为句柄池,reference中寸的就是对象的句柄地址,而句柄中包含了对象实例数据与类型数据各自具体的地址信息。具体结构如图:使用直接指针访问(常用)使用直接指针访问,Java堆中对象的内存布局就必须考虑如何防止访问类型数据的相关信息,r

2020-08-15 00:29:10

JDK1.8——Java对象在堆内存中的存储布局:对象头(Header)、实例数据(Instance Data)、对齐填充(Padding)

对象在堆内存中的存储布局可以划分为三个部分:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。对象头(Header)对象头分为两类信息:一类是用于存储对象自身的运行时数据,一类是类型指针。第一部分是用于存储对象自身的运行时数据,如哈希码(HashCode)、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等。 这部分数据的长度在32位和64位的虚拟机(未开启压缩指针)中分别为32个比特和64个比特,官方称它为"Mark Word"第二

2020-08-13 23:16:41

Springboot自定义starter(启动器)

Springboot自定义starter(启动器)1. 创建一个空的project2. 在空的project下创建两个module:一个为maven项目,一个为springboot项目(为了方便)3. 在maven项目的pom依赖中引入springboot项目自动配置(这其实就是一个starter)<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"

2020-08-08 16:29:30

Springboot整合Spring data JPA

Springboot整合Spring data JPA一、 整合配置文件导入pom依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>配置application.yml文件spring: data

2020-08-08 16:01:16

Springboot中如何使用mybatis

Sprngboot整合Mybatis一、整合配置文件1. 导入pom依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.3</version> </dependency>2

2020-08-08 15:40:10

Springboot整合JDBC(Durid)

Springboot整合JDBC这里我们以阿里的druid来举例:一、 Jdbc配置文件首先需要配置连接数据库信息spring: datasource: # 配置数据库用户名 username: root # 配置数据库密码 password: 123456 # 配置连接到哪个数据库 # 最后面的这个jdbc是我建的数据库的名字,要改成你自己的 url: jdbc:mysql://192.168.0.112:3306/jdbc

2020-08-08 15:21:50

Dubbo支持的SLB(负载均衡)策略

Dubbo默认支持的负载均衡策略Random LoadBalance随机,按权重设置随机概率。 在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后分布也比较均匀,有利于动态调整提供者权重。RoundRobin LoadBalance轮循,按每台机器相应速度的权重设置轮循比率。 存在慢提供者累积请求的问题,比如,某台机器因自身性能问题导致响应很慢,但没有故障,当请求调到这台机器时就会卡住,久而久之,所有的请求都会卡在这台机器上。LeastActive LoadBalance最少

2020-08-06 22:08:54

面向对象的五大原则——单一职责原则、开闭原则、里氏替换原则、依赖倒转原则、接口分离原则

什么是单一职责原则单一职责原则是指,就一个类而言,应该仅有一个引起它变化的原因。(即一个类只实现一个功能——高内聚)为什么要遵从单一职责原则如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。即如果不遵从单一职责原则,就无法完成面向对象 高内聚、低耦合 的特点,而且会使得代码难以维护,慢慢变成"祖传代码"!...

2020-07-27 22:42:14

设计模式之单例模式(饿汉式、懒汉式)

单例模式什么是单例模式单例模式是指:保证一个类仅有一个实例,并提供一个访问它的全局访问点(即public的访问方法)如何实现单例模式让类自身负责保存它的唯一实例,这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的公共方法。具体实现:私有化构造方法创建private satic的对象实例提供唯一的public static的访问本类实例的访问方法单例模式类型饿汉式优点:天生线程安全,因为在类被加载的时候,实例就已经创建了,不存在多线程调用的时候重复创建问题。

2020-07-27 22:31:29

设计模式之简单工厂模式(静态工厂模式)

简单工厂模式什么是简单工厂模式?简单来说:简单工厂模式就是通过创建一个工厂类,这个工厂类会根据输入参数的不同返回不同的类的实例,被创建的实例通常都有同一个父类。简单工厂模式优点?对象的创建交由工厂,客户端可以免除直接创建对象的职责,且不用关心对象创建的过程。创建对象时,无需确定要创建哪个类,不需要知道类名,只需要知道参数即可。简单工厂模式缺点?对象的创建全部交由工厂类,逻辑繁多,职责过重,一旦异常会影响调用该工厂的所有方法。简单工厂模式会导致类的个数增加,增加系统的复杂度。系统扩展困

2020-07-20 22:35:00

SpringBoot最详细的入门讲解——spring-boot入门(三)——Springboot项目配置文件加载顺序

Springboot配置文件加载springboot启动会扫描以下位置的application.properties或者application.yml文件作为springboot的默认配置文件。-file:./config/ (整个项目下的config文件,和src为同级目录)-file:./ (和pom为同级目录)-classpath:/config/ (classpath为类路径下)-classpath:/ (classpath为类路径下)-以上

2020-06-23 22:22:45

SpringBoot最详细的入门讲解——spring-boot入门(二)——快速创建Springboot项目

快速创建Springboot项目一、创建Springboot项目启动idea:File—New—Project选择Spring Initializr并选择自己的jdk——Next输入新建项目的信息——Next选择:Web—SpringWeb—Next确认信息——Finish二、启动并测试项目...

2020-06-21 23:43:58

Java数据结构基本概念和术语

数据结构一、什么是数据结构数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科。简单来说: 程序设计 = 数据结构 + 算法二、基本概念和术语数据: 数据是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据元素: 数据元素是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。数据项:一个数据元素可以由若干个数据项组成。数据项是数据不可分割的最小单位。数据对象:数据

2020-06-21 14:05:21

Java流程控制——if-else、while、do-while、for、return、break、continue

年少多读书做几个遥远未知的梦年少多写信寄几封忧愁或是欢乐年少多交友饮几杯满怀心事的酒年少多奔走做几件轰轰烈烈的事然后中年痛饮烈酒有谈资老年香茗清茶有故事——一个不愿意做一个无聊程序员的程序员控制执行流程就像有知觉的生物一样,程序必须在执行过程中控制它的世界,并做出选择。在Java中,你要使用执行控制语句来做出选择。——Java编程思想Java中涉及流程控制的关键字包括:...

2020-06-18 21:55:32

Java构造器的含义、作用及子类和父类的初始化

构造器一、什么是构造器?构造器是一个特殊的方法,这个特殊方法用于创建实例时执行初始化。构造器是创建对象的重要途径,因此Java类必须包含一个或一个以上的构造器。如果程序员没有提供自定义的构造器,系统会提供一个无参的默认构造器;如果程序员提供了自定义的构造器,系统就不再提供默认的构造器。举例: java类必须包含一个或一个以上的构造器及默认构造器package com.xiaobai.co...

2020-06-18 21:54:58

SpringBoot最详细的入门讲解——spring-boot入门(一)—— 工具准备

SpringBoot入门——工具准备SpringBoot最详细的入门教程一、开发工具1.编程工具——idea链接:https://pan.baidu.com/s/1KJcl1fhSlzjhpkmqhYQREQ提取码:yrme这里我提供2017版本,下载安装后使用2.依赖工具——maven链接:https://pan.baidu.com/s/16tm1uZPEuOIogsYXriBC...

2020-03-15 11:57:21

Java基础之数据类型

喜欢一个人像山川昼夜远山青葱娉婷渺渺河川温润情事漫漫晚昼三千想梳你青丝凉夜如水愿拥你入梦——一个不愿意做个无聊程序员的程序员Java支持的数据类型有两种:基本数据类型、引用数据类型。一、Java的基本数据类型困困咯 先发了吧 明天写二、Java的引用数据类型...

2019-10-31 00:40:30

java中的注释、标识符、关键字

我想和你相遇在巷子里 眉宇绽放 眼含星光相遇倘若我没有错过你 要把你的生活变成我的故事我想和你住一间屋子里 晨起煮粥 过午饮茶傍晚倘若我从外面回来 就给你买一束花——一个不想称为无聊程序员的程序员一、Java中的注释注释的类型有三种:1.单行注释:Java语言中使用双斜杠(//)放在要注释的内容之前。2.多行注释:使用“/”和“/”将程序中需要注释的内容包括起来。3.文档注释:文...

2019-10-31 00:10:52

java中的类、对象、封装、继承、多态

初见银河浩瀚无垠十万里忽而见你眼中只余一颗星——一个不愿意只做无聊程序员的程序员一、Java中的对象和类1.什么是对象在Java语言中,除了8个基本的数据类型外(byte、short、int、long、char、boolean、float、double),一切都是对象,而对象就是面向对象程序设计的中心。对象具有状态,一个对象用数据值来描述它的状态。对象实现了数据和操作的结合,对象把...

2019-10-30 21:34:35

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到达人
    签到达人
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。