<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[python_studying的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/python_studying</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; python_studying]]></copyright><item><title><![CDATA[jvm-对象实例化内存布局与访问定位]]></title><link>https://blog.youkuaiyun.com/python_studying/article/details/108454916</link><guid>https://blog.youkuaiyun.com/python_studying/article/details/108454916</guid><author>python_studying</author><pubDate>Thu, 17 Sep 2020 16:12:19 +0800</pubDate><description><![CDATA[对象实例化内存布局与访问定位
对象实例化
面试题

对象在JVM中是怎么存储的？
对象头信息里面有哪些东西？
Java对象头有什么？

从对象创建的方式 和 步骤开始说

对象创建方式

new：最常见的方式、单例类中调用getInstance的静态类方法，XXXFactory的静态方法
Class的newInstance方法：在JDK9里面被标记为过时的方法，因为只能调用空参构造器
Constructor的newInstance(XXX)：反射的方式，可以调用空参的，或者带参的构造器
使用clone()：]]></description><category></category></item><item><title><![CDATA[Java11的新特征]]></title><link>https://blog.youkuaiyun.com/python_studying/article/details/108391912</link><guid>https://blog.youkuaiyun.com/python_studying/article/details/108391912</guid><author>python_studying</author><pubDate>Thu, 10 Sep 2020 22:05:35 +0800</pubDate><description><![CDATA[1

]]></description><category></category></item><item><title><![CDATA[jvm-方法区]]></title><link>https://blog.youkuaiyun.com/python_studying/article/details/108446071</link><guid>https://blog.youkuaiyun.com/python_studying/article/details/108446071</guid><author>python_studying</author><pubDate>Mon, 07 Sep 2020 19:27:16 +0800</pubDate><description><![CDATA[方法区
前言
这次所讲述的是运行时数据区的最后一个部分

从线程共享与否的角度来看

ThreadLocal：如何保证多个线程在并发环境下的安全性？典型应用就是数据库连接管理，以及会话管理
栈、堆、方法区的交互关系
下面就涉及了对象的访问定位


Person：存放在元空间，也可以说方法区
person：存放在Java栈的局部变量表中
new Person()：存放在Java堆中

方法区的理解
《Java虚拟机规范》中明确说明：“尽管所有的方法区在逻辑上是属于堆的一部分，但一些简单的实现可能不会选择去进行]]></description><category></category></item><item><title><![CDATA[jvm-堆]]></title><link>https://blog.youkuaiyun.com/python_studying/article/details/108432606</link><guid>https://blog.youkuaiyun.com/python_studying/article/details/108432606</guid><author>python_studying</author><pubDate>Mon, 07 Sep 2020 13:13:41 +0800</pubDate><description><![CDATA[堆
堆的核心概念
堆针对一个JVM进程来说是唯一的，也就是一个进程只有一个JVM，但是进程包含多个线程，他们是共享同一堆空间的。

一个JVM实例只存在一个堆内存，堆也是Java内存管理的核心区域。
Java堆区在JVM启动的时候即被创建，其空间大小也就确定了。是JVM管理的最大一块内存空间。

堆内存的大小是可以调节的。

《Java虚拟机规范》规定，堆可以处于物理上不连续的内存空间中，但在逻辑上它应该被视为连续的。
所有的线程共享Java堆，在这里还可以划分线程私有的缓冲区（Thread Local A]]></description><category></category></item><item><title><![CDATA[jvm-本地方法和本地方法栈]]></title><link>https://blog.youkuaiyun.com/python_studying/article/details/108432025</link><guid>https://blog.youkuaiyun.com/python_studying/article/details/108432025</guid><author>python_studying</author><pubDate>Sun, 06 Sep 2020 15:37:26 +0800</pubDate><description><![CDATA[本地方法接口
什么是本地方法
简单地讲，一个Native Methodt是一个Java调用非Java代码的接囗。一个Native Method是这样一个Java方法：该方法的实现由非Java语言实现，比如C。这个特征并非Java所特有，很多其它的编程语言都有这一机制，比如在C++中，你可以用extern “c” 告知c++编译器去调用一个c的函数。
“A native method is a Java method whose implementation is provided by non-java c]]></description><category></category></item><item><title><![CDATA[jvm-虚拟机栈]]></title><link>https://blog.youkuaiyun.com/python_studying/article/details/108405956</link><guid>https://blog.youkuaiyun.com/python_studying/article/details/108405956</guid><author>python_studying</author><pubDate>Sun, 06 Sep 2020 15:23:17 +0800</pubDate><description><![CDATA[虚拟机栈
虚拟机栈概述
由于跨平台性的设计，Java的指令都是根据栈来设计的。不同平台CPU架构不同，所以不能设计为基于寄存器的。

优点是跨平台，指令集小，编译器容易实现，缺点是性能下降，实现同样的功能需要更多的指令。

有不少Java开发人员一提到Java内存结构，就会非常粗粒度地将JVM中的内存区理解为仅有Java堆（heap）和Java栈（stack）？为什么？
首先栈是运行时的单位，而堆是存储的单位

栈解决程序的运行问题，即程序如何执行，或者说如何处理数据。
堆解决的是数据存储的问题，即数据怎么]]></description><category></category></item><item><title><![CDATA[jvm-程序计数器]]></title><link>https://blog.youkuaiyun.com/python_studying/article/details/108405185</link><guid>https://blog.youkuaiyun.com/python_studying/article/details/108405185</guid><author>python_studying</author><pubDate>Fri, 04 Sep 2020 15:54:32 +0800</pubDate><description><![CDATA[程序计数器
介绍
JVM中的程序计数寄存器（Program Counter Register）中，Register的命名源于CPU的寄存器，寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。这里，并非是广义上所指的物理寄存器，或许将其翻译为PC计数器（或指令计数器）会更加贴切（也称为程序钩子），并且也不容易引起一些不必要的误会。JVM中的PC寄存器是对物理PC寄存器的一种抽象模拟。

它是一块很小的内存空间，几乎可以忽略不记。也是运行速度最快的存储区域。
在JVM规范中，每个线程都有它自]]></description><category></category></item><item><title><![CDATA[jvm- 运行时数据区概述及线程]]></title><link>https://blog.youkuaiyun.com/python_studying/article/details/108404632</link><guid>https://blog.youkuaiyun.com/python_studying/article/details/108404632</guid><author>python_studying</author><pubDate>Fri, 04 Sep 2020 15:25:41 +0800</pubDate><description><![CDATA[运行时数据区概述及线程
前言
本节主要讲的是运行时数据区，也就是下图这部分，它是在类加载完成后的阶段

当我们通过前面的：类的加载-&gt; 验证 -&gt; 准备 -&gt; 解析 -&gt; 初始化 这几个阶段完成后，就会用到执行引擎对我们的类进行使用，同时执行引擎将会使用到我们运行时数据区

也就是大厨做饭，我们把大厨后面的东西（切好的菜，刀，调料），比作是运行时数据区。而厨师可以类比于执行引擎，将通过准备的东西进行制作成精美的菜品

内存是非常重要的系统资源，是硬盘和CPU的中间仓库及桥梁，承载着操]]></description><category></category></item><item><title><![CDATA[jvm-类加载子系统]]></title><link>https://blog.youkuaiyun.com/python_studying/article/details/108397487</link><guid>https://blog.youkuaiyun.com/python_studying/article/details/108397487</guid><author>python_studying</author><pubDate>Fri, 04 Sep 2020 15:08:13 +0800</pubDate><description><![CDATA[类加载子系统
概述

完整图如下

如果自己想手写一个Java虚拟机的话，主要考虑哪些结构呢？

类加载器
执行引擎

类加载器子系统作用
类加载器子系统负责从文件系统或者网络中加载Class文件，class文件在文件开头有特定的文件标识。
ClassLoader只负责class文件的加载，至于它是否可以运行，则由Execution Engine决定。
加载的类信息存放于一块称为方法区的内存空间。除了类的信息外，方法区中还会存放运行时常量池信息，可能还包括字符串字面量和数字常量（这部分常量信息是Class文]]></description><category></category></item><item><title><![CDATA[JVM简介和Java体系结构]]></title><link>https://blog.youkuaiyun.com/python_studying/article/details/108391999</link><guid>https://blog.youkuaiyun.com/python_studying/article/details/108391999</guid><author>python_studying</author><pubDate>Thu, 03 Sep 2020 23:20:10 +0800</pubDate><description><![CDATA[JVM与Java体系结构
前言
作为Java工程师的你曾被伤害过吗？你是否也遇到过这些问题？
运行着的线上系统突然卡死，系统无法访问，甚至直接OOMM！

想解决线上JVM GC问题，但却无从下手。
新项目上线，对各种JVM参数设置一脸茫然，直接默认吧然后就JJ了
每次面试之前都要重新背一遍JVM的一些原理概念性的东西，然而面试官却经常问你在实际项目中如何调优VM参数，如何解决GC、OOM等问题，一脸懵逼。


大部分Java开发人员，除会在项目中使用到与Java平台相关的各种高精尖技术，对于Java技术的]]></description><category></category></item><item><title><![CDATA[Java8新特性]]></title><link>https://blog.youkuaiyun.com/python_studying/article/details/108370658</link><guid>https://blog.youkuaiyun.com/python_studying/article/details/108370658</guid><author>python_studying</author><pubDate>Thu, 03 Sep 2020 16:14:06 +0800</pubDate><description><![CDATA[主要内容

Lambda 表达式
函数式接口
方法引用与构造器引用
Stream API
接口中的默认方法与静态方法
新时间日期 API
其他新特性

Lambda 表达式
Lambda 是一个匿名函数，我们可以把 Lambda
表达式理解为是一段可以传递的代码（将代码
像数据一样进行传递）。可以写出更简洁、更
灵活的代码。作为一种更紧凑的代码风格，使
Java的语言表达能力得到了提升。
Lambda 表达式语法
Lambda 表达式在Java 语言中引入了一个新的语法元素和操作符。这个操作符为 “-&gt]]></description><category></category></item><item><title><![CDATA[Pandas的高级索引]]></title><link>https://blog.youkuaiyun.com/python_studying/article/details/108366507</link><guid>https://blog.youkuaiyun.com/python_studying/article/details/108366507</guid><author>python_studying</author><pubDate>Wed, 02 Sep 2020 17:35:28 +0800</pubDate><description><![CDATA[Pandas的高级索引有3种
loc 标签索引

DataFrame 不能直接切片，可以通过loc来做切片
loc是基于标签名的索引，也就是我们自定义的索引名

示例代码：
ser_obj = pd.Series(range(5), index = ['a', 'b', 'c', 'd', 'e'])

df_obj = pd.DataFrame(np.random.randn(5,4), columns = ['a', 'b', 'c', 'd'])
# 标签索引 loc
# Series
print(s]]></description><category></category></item><item><title><![CDATA[Pandas的使用(1)]]></title><link>https://blog.youkuaiyun.com/python_studying/article/details/108360400</link><guid>https://blog.youkuaiyun.com/python_studying/article/details/108360400</guid><author>python_studying</author><pubDate>Wed, 02 Sep 2020 17:24:34 +0800</pubDate><description><![CDATA[什么是Pandas?
Pandas的名称来自于面板数据（panel data）和Python数据分析（data analysis）。

Pandas是一个强大的分析结构化数据的工具集，基于NumPy构建，提供了 高级数据结构 和 数据操作工具，它是使Python成为强大而高效的数据分析环境的重要因素之一。

一个强大的分析和操作大型结构化数据集所需的工具集
基础是NumPy，提供了高性能矩阵的运算
提供了大量能够快速便捷地处理数据的函数和方法
应用于数据挖掘，数据分析
提供数据清洗功能

Pandas的数据]]></description><category></category></item><item><title><![CDATA[Numpy-ndarray（3）]]></title><link>https://blog.youkuaiyun.com/python_studying/article/details/108360220</link><guid>https://blog.youkuaiyun.com/python_studying/article/details/108360220</guid><author>python_studying</author><pubDate>Wed, 02 Sep 2020 13:26:48 +0800</pubDate><description><![CDATA[元素计算函数

ceil(): 向上最接近的整数，参数是 number 或 array


floor(): 向下最接近的整数，参数是 number 或 array


rint(): 四舍五入，参数是 number 或 array


isnan():判断元素是否为 NaN(Not a Number)，参数是 number 或 array


multiply(): 元素相乘，参数是number 或 array


divide(): 元素相除，参数是number 或 array


abs()：元素的绝]]></description><category></category></item><item><title><![CDATA[Numpy-ndarray（2）]]></title><link>https://blog.youkuaiyun.com/python_studying/article/details/108358421</link><guid>https://blog.youkuaiyun.com/python_studying/article/details/108358421</guid><author>python_studying</author><pubDate>Wed, 02 Sep 2020 13:09:06 +0800</pubDate><description><![CDATA[ndarray的矩阵运算

数组是编程中的概念，矩阵、矢量是数学概念。
在计算机编程中，矩阵可以用数组形式定义，矢量可以用结构定义!


矢量运算：相同大小的数组间运算应用在元素上

示例代码（1）：
# 矢量与矢量运算
arr = np.array([[1, 2, 3],
                [4, 5, 6]])

print("元素相乘：")
print(arr * arr)

print("矩阵相加：")
print(arr + arr)

运行结果：
元素相乘：
[[ 1  4  9]]]></description><category></category></item><item><title><![CDATA[Numpy-ndarray（1）]]></title><link>https://blog.youkuaiyun.com/python_studying/article/details/108356912</link><guid>https://blog.youkuaiyun.com/python_studying/article/details/108356912</guid><author>python_studying</author><pubDate>Wed, 02 Sep 2020 11:03:06 +0800</pubDate><description><![CDATA[Numpy：提供了一个在Python中做科学计算的基础库，重在数值计算，主要用于多维数组（矩阵）处理的库。用来存储和处理大型矩阵，比Python自身的嵌套列表结构要高效的多。本身是由C语言开发，是个很基础的扩展，Python其余的科学计算扩展大部分都是以此为基础。

ndarray

NumPy数组是一个多维的数组对象（矩阵），称为ndarray，具有矢量算术运算能力和复杂的广播能力，并具有执行速度快和节省空间的特点。

ndarray的随机创建
代码示例：
# 生成指定维度大小（3行4列）的随机多维浮点.]]></description><category></category></item><item><title><![CDATA[python-数据分析理论]]></title><link>https://blog.youkuaiyun.com/python_studying/article/details/108356285</link><guid>https://blog.youkuaiyun.com/python_studying/article/details/108356285</guid><author>python_studying</author><pubDate>Wed, 02 Sep 2020 10:09:44 +0800</pubDate><description><![CDATA[定义：

数据分析是指用适当的统计分析方法对收集来的大量数据进行分析，提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。这一过程也是质量管理体系的支持过程。在实用中，数据分析可帮助人们作出判断，以便采取适当行动。

过程：


数据收集：本地数据或者网络数据的采集与操作.
数据处理：数据的规整，按照某种格式进行整合存储。
数据分析：数据的科学计算，使用相关数据工具进行分析。
数据展现：数据可视化，使用相关工具对分析出的数据进行展示。


大数据分析场景和模型应用
数据分析建模需要先明确业务需求，然]]></description><category></category></item><item><title><![CDATA[MyBatisPlus的入门使用]]></title><link>https://blog.youkuaiyun.com/python_studying/article/details/107875641</link><guid>https://blog.youkuaiyun.com/python_studying/article/details/107875641</guid><author>python_studying</author><pubDate>Sat, 08 Aug 2020 10:45:40 +0800</pubDate><description><![CDATA[1.MyBatisPlus 介绍
MyBatis-Plus(简称 MP),是一个 MyBatis 的增强工具包，只做增强不做改变. 为简化开
发工作、提高生产率而生
2.集成 MP
2.1 创建测试表
-- 创建库
CREATE DATABASE mp;
-- 使用库
USE mp;
-- 创建表
CREATE TABLE tbl_employee(
 id INT(11) PRIMARY KEY AUTO_INCREMENT,
 last_name VARCHAR(50),
 email VARCHAR(]]></description><category></category></item><item><title><![CDATA[Docker 安装 Nginx]]></title><link>https://blog.youkuaiyun.com/python_studying/article/details/107862003</link><guid>https://blog.youkuaiyun.com/python_studying/article/details/107862003</guid><author>python_studying</author><pubDate>Fri, 07 Aug 2020 15:08:57 +0800</pubDate><description><![CDATA[下载最新版的 Nginx 镜像

docker pull nginx:latest

运行容器

docker run -di --name=mynginx -p 80:80 nginx
测试是否成功


进入容器

docker exec -it mynginx /bin/bash

查看nginx中的配置文件


cat /etc/nginx/nginx.conf


看到此配置文件会加载其他配置文件,找到相应的配置文件


cat /etc/nginx/conf.d/default.conf


静态]]></description><category></category></item><item><title><![CDATA[Docker的安装和基本使用]]></title><link>https://blog.youkuaiyun.com/python_studying/article/details/107854693</link><guid>https://blog.youkuaiyun.com/python_studying/article/details/107854693</guid><author>python_studying</author><pubDate>Fri, 07 Aug 2020 12:35:24 +0800</pubDate><description><![CDATA[Docker简介
Docker 是一个开源的应用容器引擎，基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中，然后发布到任何流行的 Linux 机器上，也可以实现虚拟化。
容器是完全使用沙箱机制，相互之间不会有任何接口（类似 iPhone 的 app）,更重要的是容器性能开销极低。
Docker的安装
1.更换国内软件源，推荐中国科技大学的源，稳定速度快（可选）

sudo cp /etc/apt/sources.list]]></description><category></category></item></channel></rss>