系统变量

一起学习JVM-内存结构-方法区(Method Area)(线程共享的区域)

我怕爱的太早我们不能终老 提交于 2020-01-29 09:53:49
文章目录 方法区(Method Area) 运行时常量池 StringTable(串池) 方法区(Method Area) 定义: 存储了跟类相关的信息,如:成员变量、方法、构造器及常量池等。 逻辑上是堆的一部分,但是具体的实现是不一样的。比如:oracle公司的Hotspot JVM 在1.8之前方法区的实现叫永久代,就是使用堆的一部分作为方法区。 而1.8之后方法区的实现叫元空间,使用的是本地内存也就是系统内存。 特点: 1.所有Java线程共享的区域 2.能发生outOfMemoryErrot(内存溢出) 产生方法区内存溢出的场景: 动态产生class并加载的场景:如, spring利用cglib生成的代理类,mybatis用cglib动态生成mapper接口的实现类等 在JDK1.8之前,spring、mybatis等动态生成的类还是很容易造成永久代的内存溢出。 在1.8之后,因为元空间使用的是系统内存,相对来说充裕了很多,而且垃圾回收也是由自己管理的 演示代码: 1.8 以前会导致永久代内存溢出: 注意:该代码应用于JDK1.6版本 /** * 演示永久代内存溢出 java.lang.OutOfMemoryError: PermGen space * 设置启动参数,永久代最大内存为8M: -XX:MaxPermSize=8m */ public class Demo1_6

Java内存模型与线程

假如想象 提交于 2020-01-29 07:32:02
Java内存模型与线程 每秒事务处理数(Transactions Per Second,TPS)、 Java语言和虚拟机提供了许多工具,把并发编程的门槛降低了不少。另外,各种中间件服务器、各类框架 12.2 硬件的效率与一致性 现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cache)来作为内存与处理器之间的缓冲: 为了解决一致性的问题,需要各个处理器访问缓存时都遵循一些协议,在读写时要根据协议来进行操作,这类协议有MSI、MESI(IllinoisProtocol)、MOSI、Synapse、Firefly及Dragon Protocol,等等 为了使得处理器内部的运算单元能尽量被充分利用,处理器可能会对输入代码进行乱序执行(Out-Of-Order Execution)优化,处理器会在计算之后将乱序执行的结果重组,保证该结果与顺序执行的结果是一致的,类似,Java虚拟机的即时编译器中也有类似的指令重排序(Instruction Reorder)优化。 12.3 Java内存模型 用来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果。 12.3.1 主内存与工作内存 此处的变量包括了实例字段、静态字段和构成数组对象的元素,但是不包括局部变量与方法参数,因为后者是线程私有的[插图],不会被共享

maven的安装

久未见 提交于 2020-01-29 02:15:08
maven的环境变量配置 0.把maven压缩包解压到c/my_java目录下。 1.我的电脑右键-》属性-》高级系统设置-》环境变量 2.把解压的目录粘贴在变量值中。 3.在path中添加 maven的环境配置依赖于java_home 4.查看安装是否成功cmd-> mvn -v 出现以上的结果即安装成功。 附加 本地仓库的设置 来源: CSDN 作者: 布斯安 链接: https://blog.csdn.net/qq_40764966/article/details/104050055

理解 Android Build 系统

爷,独闯天下 提交于 2020-01-26 10:23:50
摘自: https://www.ibm.com/developerworks/cn/opensource/os-cn-android-build/index.html 前言 Android Build 系统是 Android 源码的一部分。关于如何获取 Android 源码,请参照 Android Source 官方网站: http://source.android.com/source/downloading.html 。 Android Build 系统用来编译 Android 系统,Android SDK 以及相关文档。该系统主要由 Make 文件,Shell 脚本以及 Python 脚本组成,其中最主要的是 Make 文件。 众所周知,Android 是一个开源的操作系统。Android 的源码中包含了大量的开源项目以及许多的模块。不同产商的不同设备对于 Android 系统的定制都是不一样的。 如何将这些项目和模块的编译统一管理起来,如何能够在不同的操作系统上进行编译,如何在编译时能够支持面向不同的硬件设备,不同的编译类型,且还要提供面向各个产商的定制扩展,是非常有难度的。 但 Android Build 系统很好的解决了这些问题,这里面有很多值得我们开发人员学习的地方。 对于 Android 平台开发人员来说,本文可以帮助你熟悉你每天接触到的构建环境。

simulink之S函数

此生再无相见时 提交于 2020-01-21 01:02:51
s函数是system Function的简称,用它来写自己的simulink模块。(够简单吧,^_^,详细的概念介绍大伙看帮助吧)可以用matlab、C、C++、Fortran、Ada等语言来写,这儿我只介绍怎样用matlab语言来写吧(主要是它比较简单) 先讲讲为什么要用s函数,我觉得用s函数可以利用matlab的丰富资源,而不仅仅局限于simulink提供的模块,而用c或c++等语言写的s函数还可以实现对硬件端口的操作,还可以操作windows API等的 先介绍一下simulink的仿真过程(以便理解s函数),simulink的仿真有两个阶段:一个为初始化,这个阶段主要是设置一些参数,像系统的输入输出个数、状态初值、采样时间等;第二个阶段就是运行阶段,这个阶段里要进行计算输出、更新离散状态、计算连续状态等等,这个阶段需要反复运行,直至结束。 在matlab的workspace里打edit sfuntmpl(这是matlab自己提供的s函数模板),我们看它来具体分析s函数的结构。 它的第一行是这样的:function [sys,x0,str,ts]=sfuntmpl(t,x,u,flag) 先讲输入与输出变量的含义:t是采样时间,x是状态变量,u是输入(是做成simulink模块的输入),flag是仿真过程中的状态标志(以它来判断当前是初始化还是运行等)

linux系统语系$lang

扶醉桌前 提交于 2020-01-20 17:02:36
Linux LANG变量设置:定义系统的主语系环境 LANG 变量定义了 Linux 系统的主语系环境,这个变量的默认值如下: [root@localhost src]# echo $LANG zh_CN.UTF-8 这是因为我们在安装 Linux 时选择的是中文安装,所以默认的主语系变量是"zh_CN.UTF-8"。 查询Linux 系统中支持多少种语系: [root@localhost src]# locale -a | more aa_DJ aa_DJ.iso88591 aa_DJ.utf8 aa_ER …省略部分输出…#查询支持的语系[root@localhost src]# locale -a | wc -l735 查看当前系统使用的语系: [root@localhost src]# locale LANG=zh_CN.UTF-8 LC_CTYPE="zh_CN.UTF-8" LC_NUMERIC="zh_CN.UTF-8" LC_TIME="zh_CN.UTF-8" LC_COLLATE="zh_CN.UTF-8" LC_MONETARY="zh_CN.UTF-8" LC_MESSAGES="zh_CN.UTF-8" LC_PAPER="zh_CN.UTF-8n LC_NAME="zh_CN.U 丁 F-8" LC_ADDRESS="zh_CN.UTF-8" LC

maven环境变量配置

放肆的年华 提交于 2020-01-19 03:48:18
第一步:右键计算机选择属性,选择高级系统设置 第二步:点击环境变量,进行环境配置 第三步:新建MAVEN_HOME系统变量,加入maven路径(我这里直接先加入了\bin,而不是在添加到Path时在) 第四步:打开Path系统变量,添加 ;%MAVEN_HOME%; 第五步:点击确认后,进行测试,打开CMD输入mvn -v,出现以下结果说明配置成功 原创文章,各位配置的时候可能会出现各种各样的问题,关于配置出现的问题在文章下方评论,一起解决 来源: CSDN 作者: 499 ls 599 链接: https://blog.csdn.net/weixin_44519467/article/details/103914091

Java环境变量配置

早过忘川 提交于 2020-01-19 01:13:29
首先下载jdk 8并安装好。 依次打开【我的电脑】【属性】【高级】【环境变量】,【系统变量】【新建】 JAVA_HOME D:\Java\jdk1.8.0_66 然后在系统变量找到 Path ,添加如下代码: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 最后在点击【系统变量】【新建】: CLASSPATH .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar 来源: CSDN 作者: DaveKozer 链接: https://blog.csdn.net/u012720047/article/details/103904443

Java开发环境的配置

这一生的挚爱 提交于 2020-01-17 23:47:14
一.JDK的下载和安装 ☆访问Oracle官网进行下载,具体步骤如下: 打开Oracle官网网址: http://www.oracle.com 进入主页面,点击左上方的图标: 点击 Downloads 进入下载界面: 选择 java : 选择 Java(JDK)for Developers: 在 Java SE Downloads 页面,点击中间的 DOWNLOAD 按钮: 在JDK下载页,首先勾选 Accept License Agreement ,同意Oracle Java SE的Oracle技术网许可协议: 根据电脑操作系统选择合适的版本下载,选择Windows系统64位版本,exe是安装程序,点击下载即可: 注:这里以exe结尾的是jdk的安装版本,文件较小,需要手动进行安装;以zip结尾的是zip的压缩包,文件稍大,直接解压即可,这里我们选择手动安装。 ☆JDK安装,具体步骤如下: 注:Windows版JDK安装,基本是傻瓜式安装,直接下一步即可。但默认的安装路径是在C:\Program Files下,为方便统一管理,最好修改下安装路径,将与开发相关的软件都安装到一个文件夹下,例如E:\develop。 安装路径不要包含中文或者空格等特殊字符(使用纯英文目录) 。 首先双击打开安装程序,点击下一步: 默认安装目录为C盘,点击更改,修改安装路径: 将目录更改至E:

verilog 心得

爱⌒轻易说出口 提交于 2020-01-17 04:28:17
verilog语法学习心得 1.数字电路基础知识: 布尔代数、门级电路的内部晶体管结构、组合逻辑电路分析与设计、触发器、时序逻辑电路分析与设计 2.数字系统的构成: 传感器 AD 数字处理器 DA 执行部件 3.程序通在硬件上的执行过程: C语言(经过编译)-->该处理器的机器语言(放入存储器)-->按时钟的节拍,逐条取出指令、分析指令、执行指令 4.DSP处理是个广泛概念,统指在数字系统中做的变换(DFT)、滤波、编码解码、加密解密、压缩解压等处理 5.数字处理器包括两部分:高速数据通道接口逻辑、高速算法电路逻辑 6.当前,IC产业包括IC制造和IC设计两部分,IC设计技术发展速度高于IC设计 7.FPGA设计的前续课程:数值分析、DSP、C语言、算法与数据结构、数字电路、HDL语言 计算机微体系结构 8.数字处理器处理性能的提高:软件算法的优化、微体系结构的优化 9.数字系统的实现方式: 编写C程序,然后用编译工具得到通用微处理器的机器指令代码,在通用微处理器上运行(如8051/ARM/PENTUIM) 专用DSP硬件处理器 用FPGA硬件逻辑实现算法,但性能不如ASIC 用ASIC实现,经费充足、大批量的情况下使用,因为投片成本高、周期长 10.FPGA设计方法: IP核重用、并行设计、层次化模块化设计、top-down思想 FPGA设计分工:前端逻辑设计、后端电路实现