- 浏览: 20948 次
- 性别:
- 来自: 北京
文章列表
2.3 HotSpot虚拟机对象的探秘
以常用的HotSpot虚拟机和常用的内存区域Java堆为例,探讨虚拟机在Java堆中的对象分配,布局和访问的全过程:
对象的创建,对象的内存布局,对象的访问定位。
1.对象的创建
1-文中讨论的对象,仅限于普通Java对象,不包括数组和Class对象
2-对象的创建过程:
1)虚拟机遇到一条new指令时
-判断常量池是否能定位到一个类的符号引用
-如果存在,则检查这个符号引用代表的类是否被加载,解析和初始化
-如果没有被加载,则执行类加载过程
2)类加载检查通过之后,接下来虚拟机就为新生对象分配内存。
-对象所需的内存大小在类 ...
2.2 运行时数据区域
根据Java虚拟机规范,Java虚拟机所管理的内存包含以下几个运行时数据区域:
程序计数器,虚拟机栈,本地方法栈,Java堆,方法区。
线程共享:Java堆,方法区
线程私有:程序计数器,虚拟机栈,本地方 ...
最新仔细看了一遍JDK1.6 HashMap的源码,收获颇深,写一篇博客来记录下自己的学习心得。HashMap也是Java中一个非常重要的集合,确实值得研究和学习。
本文主要分几个步骤来讲HashMap:
一、HashMap底层实现
二、HashMap源码分析
1.成员变量
2.构造方法
3.put()方法和get()方法
三、HashMap需要注意的关键点
一、HashMap底层实现
HashMap底层是通过数组和链表来实现的。
HashMap是Java中存储键值对的容器,当我们调用HashMap的put()方法往M ...
以前的apk反编译方式已经不行了,因为项目需求重新学习了下反编译,这里做一个记录。
一、反编译工具介绍
apktool
作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看
https://ibotpeaches.github ...
最近在做微信小程序,由于也是一边学习一边完成,把一些平时遇到的问题记录一下,方便以后查阅,也方便后面的人借鉴。
现在有一个需求:要在小程序里做一个分享朋友圈的功能。由于微信API暂时不支持分享朋友圈,于是想到另外一种方案,在微信小程序页面里先生成一个图片,这个图片里带二维码,然后再用这个图片发朋友圈,其他朋友就可以在朋友圈里识别这个二维码了。其中遇到的一些问题:
1.图片的生成
2.图片的下载
3.图片的保存
解决:
1.图片生成:这个比较简单,给服务端传入一些参数,服务端返回一个图片URL地址就可以了。
2.图片的下载:这个用到微信小程序的API:wx.downlo ...
传统定时器使用Timer和TimerTask组合使用
java.util.Timer:定时器,用于指定时间后任务执行一次,或者定期重复执行。
java.util.TimerTask:继承了Runnable类,本质上就是一个Runnable对象
Timer和TimerTask定时器主要有两种使用情景:
1)多长时间后,执行一次定时器任务
2)多长时间后,执行一次定时器任务,之后每间隔相同时间执行一次任务
一、定时器的使用
package com.sam;
import java.util.Date;
import java.util.Timer;
import ...
我们知道传统创建线程的方式有两种:
一、继承Thread类,覆盖run()方法
// 继承Thread
class MyThread extends Thread{
@Override
public void run(){
// do something
}
}
// 开启线程
MyThread t1 = new MyThread();
t1.start();
二、实现Runnable接口,覆盖run()方法,使用该Runnalbe对象构造Thread类
// 实现Runnable接口
Class MyRunnable implements Runn ...
严格上讲,Java中只存在值传递,但是有人认为Java中即存在值传递也存在引用传递。但是无论哪种说法,只是站的角度不同,原理都是一样的。下面一一解析:
1、值传递
1)含义:
值传递,就是在一个方法调用中,传递的 ...
刚刚读完俞敏洪2014“相信未来”武汉站的演讲实录文章,感触颇深,在这里写一下心得,算是提醒自己,也是鼓励自己。
1、不管过去是好是坏,从现在开始,把自己清零,从零开始。
2、把那些不该关注的东西全部给删掉。
3、可以没有远大的目标,但是必须得给自己定一个阶段性的目标。
4、一个人可以走得很快,但是一群人可以走得更远,所以要注重团队合作。
所以从现在开始,呼吁小伙伴们一起行动,每天坚持阅读,并且做到每天阅读20页。阅读的书籍将在评论下面做补充,同时欢迎更多的同学加入到阅读这个活动中来。
阅读发起者:Sam、凌生
工欲善其事,必先利其器。—《论语》
意思是说,工匠要想做好他的工作,必须要先让工具锋利。
这句话告诉我们,要做好一件事情,准备工作是非常重要的。准备功夫做好了,可以事半功倍。
今天我们进入IO流体系的学习,本章主要是对IO流体系作一个入门介绍。只有准备工作做充分了,往后的学习才会水到渠成。
1、流与数据流的概念
流是一个比较抽象的概念,当程序读取数据时,就会开启一个通往数据源的流,这个数据源可以是文件,内存,或是网络连接。同理,当程序需要写入数据时,就会开启一个通向目的地的流。这时候我们就可以想象数据好像是在其中流动,从一端流向另一端。
Java中把这些不同来源和目标的数据都统一抽象为数据 ...
业精于勤,荒于嬉;行成于思,毁于随。—《进学解》
意思是说,学业靠勤奋才能精湛,如果贪玩就会荒废;德行靠思考才能形成,如果随大流就会毁掉。
这句话告诉我们,学业还是需要刻苦专研。不要担心选拔人才的人眼睛 ...
纸上得来终觉浅,绝知此事要躬行。—陆游
意思是说,从书本上得来的知识终归是浅薄的,要透彻的认知事务还必须亲自实践。
这句话告诉我们,除了要掌握好理论知识,还必须得亲自动手做实践,来证明结论。理论引导实践,实践推翻理论。正是这个道理!
前面三章,我们对Socket编程进行了一个比较全面的阐述,相信大家对Socket编程有了一个比较全面的认识,今天我们来实现一个实例,加深对Socket编程的理解。
1、实例:实现一个质数判断程序。即
客户端在控制台输入一个数字,服务端告诉客户端该数字是否是质数。
1)服务端程序流程:
(1)获取客户端输入的数据
(2)做判断处理
(3)返回处理结果
2)客 ...
读不在三更五鼓,功只怕一曝十寒。—郭沫若
意思是说,学习不在某一时的努力,而要锲而不舍的坚持才能成功!
这句话告诉我们,学习是一个循序渐进的积累过程,急于求成是不可取的,而想一劳永逸,想到的时候就用功一 ...
日日行,不怕千万里;常常做,不怕千万事。
意思是说,每天都走路的话,就不怕走千里万里,每天都做事的话,就不怕做了千事万事。学习也一样,每天学一点,就不怕学习了千万知识。
上一次我们对Socket编程有了一个初步 ...
不积跬步,无以至千里!
意思是说不一小步一小步的积累,无法到达一千里的地方。同理,学习,做事,做技术也是一样,要一步一个脚印,不断积累,不畏艰难,才能最终达到目的。
今天来总结一个Socket中的一些知识点,由于Socket中涉及的内容比较多,这里分几次来阐述。这次主要做一个入门:
1、Socket是什么?
网络上两个程序是通过一个双向链路来实现数据交换的,这个双向链路中其中的一端称为一个Socket,通信两端各有一个Socket。Socket通常是用来实现客户端和服务端的连接。一个Socket由一个IP地址和一个端口号唯一确定。
2、Socket的有关知识点:
Java Socket编 ...