java编程思想阅读随笔
天问运
这个作者很懒,什么都没留下…
展开
-
电商秒杀和一些相关概念
电商的秒杀和抢购,对我们来说,都不是一个陌生的东西。然而,从技术的角度来说,这对于Web系统是一个巨大的考验。当一个Web系统,在一秒钟内收到数以万计甚至更多请求时,系统的优化和稳定至关重要。这次我们会关注秒杀和抢购的技术实现和优化,同时,从技术层面揭开,为什么我们总是不容易抢到火车票的原因?一、大规模并发带来的挑战在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,在这个过程中,整个W转载 2017-11-27 15:35:58 · 306 阅读 · 0 评论 -
内存管理以及相应的处理(补充)
内存泄露是指程序中间动态分配了内存,但在程序结束时没有释放这部分内存,从而造成那部分内存不可用的情况,重启计算机可以解决,但也有可能再次发生内存泄露,内存泄露和硬件没有关系,它是由软件设计缺陷引起的。 内存泄漏可以分为4类: 1) 常发性内存泄漏。发生内存泄漏的代码会被多次执行到,每次被执行的时候都会导致一块内存泄漏。2) 偶发性内存泄漏。发生内存泄漏的代码只有在某些特定环境或操作过程下才转载 2017-11-27 12:46:10 · 131 阅读 · 0 评论 -
jvm内存泄露解析以及相应的简单处理
JAVA是垃圾回收语言的一种,开发者无需特意管理内存分配。但是JAVA中还是存在着许多内存泄露的可能性,如果不好好处理内存泄露,会导致APP内存单元无法释放被浪费掉,最终导致内存全部占据堆栈(heap)挤爆进而程序崩溃。内存泄露说到内存泄露,就不得不提到内存溢出,这两个比较容易混淆的概念,我们来分析一下。内存泄露:程序在向系统申请分配内存空间后(new),在使用完毕后未释放。结原创 2017-11-27 11:56:40 · 247 阅读 · 0 评论 -
jdk7和jdk8的一些新特性
jdk7新特性(部分)switch支持字符串ListAutoCloseable接口实现自动关闭,在try()中新增获取环境信息的工具方法,getJavaHomeDir,getUserHomeDir,getUserDir等对java集合的增强支持,如: List list=["item"]; //向List集合中添加元素 String item=list[0];原创 2017-12-05 13:40:48 · 467 阅读 · 0 评论 -
在java应用程序中计划重复执行的任务
我将把 java.util.Timer和 java.util.TimerTask统称为 Java 计时器框架,它们使程序员可以很容易地计划简单的任务(注意这些类也可用于 J2ME 中)。在 Java 2 SDK, Standard Edition, Version 1.3 中引入这个框架之前,开发人员必须编写自己的调度程序,这需要花费很大精力来处理线程和复杂的Object.wait()方法。不原创 2017-12-20 10:10:41 · 1719 阅读 · 0 评论 -
HashMap原理概述
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2. HashMap的数据结构: 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,H原创 2017-11-15 22:03:18 · 451 阅读 · 0 评论 -
JVM原理浅谈(2)
作为一名Java使用者,掌握JVM的体系结构也是必须的。说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。它们的关系如下图所示:运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件),再转载 2017-11-28 22:01:03 · 261 阅读 · 0 评论 -
JVM工作流程
作为一名Java使用者,掌握JVM的体系结构也是必须的。说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。它们的关系如下图所示:运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件),再转载 2017-11-28 22:00:32 · 243 阅读 · 0 评论 -
龙哥带你学java编程(一)-----关于线程并发死锁问题
为什么要使用并发?其实并发就是为了提高程序的运行效率也就是代码的执行速度,但是并发也是有一定的弊端,多线程就是不一定比单线程高效,并且并发编程更容易出现错误,如果是要实现正确并且是高效的的并发,就要在开发过程中注意一些问题:注意CPU的切换(也就是上下文的切换),死锁、资源的限制。一、对于 第一个问题也就是CPU的切换或者是上下文的切换会带来额外的开销 1、线程的运行机制介原创 2017-10-21 19:58:11 · 222 阅读 · 0 评论 -
JVM原理浅谈分析
、java虚拟机的生命周期: Java虚拟机的生命周期 一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序。程序开始执行时他才运行,程序结束时他就停止。你在同一台机器上运行三个程序,就会有三个运行中的Java虚拟机。 Java虚拟机总是开始于一个main()方法,这个方法必须是公有、返回void、直接受一个字符串数组。在程序执行时,你必须给Java虚拟机指明这个包换main(转载 2017-11-27 23:03:05 · 174 阅读 · 0 评论