- 浏览: 25359 次
- 性别:
最新评论
文章列表
1. 垃圾回收的意义 在C++中,对象所占的内存在程序结束运行之前一直被占用,在明确释放之前不能分配给其它对象;而在Java中,当没有对象引用指向原先分配给某个对象的内存时,该内存便成为垃圾。JVM的一个系统级线程会自动释放该内存块。垃圾回收意味着程序不再需要的对象是"无用信息",这些信息将被丢弃。当一个对象不再被引用的时候,内存回收它占领的空间,以便空间被后来的新对象使用。事实上,除了释放没用的对象,垃圾回收也可以清除内存记录碎片。由于创建对象和垃圾回收器释放丢弃对象所占的内存空间,内存会出现碎片。碎片是分配给对象的内存块之间的空闲内存洞。碎片整理将所占用的堆内存移到 ...
本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。
进入正题前首先要知道的是Java程序运行在JVM(Java Virt ...
1.Java的内存机制
Java 把内存划分成两种:一种是栈内存,另一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,当在一段代码块定义一个变量时,Java 就在栈中为这个变量分配内存空间,当超过变量的作用域后(比如,在函数A中调用函数B,在函数B中定义变量a,变量a的作用域只是函数B,在函数B运行完以后,变量a会自动被销毁。分配给它的内存会被回收),Java 会自动释放掉为该变量分配的内存空间,该内存空间可以立即被另作它用。
堆内存用来存放由 new 创建的对象和数组,在堆中分配的内存,由 Java 虚拟机的自动垃圾回收器来管理。在 堆中产生了 ...
反射:通过类名获取该类的所有成员方法、变量,或者实例化对象等。
例:Class B 访问Class A 的retnum方法
package com.ysu.fams.webservices;
public class A {
int count = 40;
public int retnum(int i){
count = i;
return count;
}
} ...
DBMS:数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。
1、建立索引
在经常检索的字段上加入索引,能很大程度上提升性能,当遇到检索比较慢的时候 ...
一、前言
对一些对象提供代理,以限制那些对象去访问其他对象。
二、结构图
三、应用场景
比如在玩“极品飞车”这款游戏,如果游戏者手中的金钱达到了一定的数量就可以到车店买一部性能更高的赛车,那么这个卖车的“车店”就是一个典型的“汽车厂家”的“代理”,他为汽车厂家“提供卖车的服务”给有需求的人士。从面向对象的方面考虑,“销售汽车的代理”也是一个对象,那么这个对象也具有一定的状态,在软件项目中这个对象也具有管理财务进销存的基本功能,那么在设计时就要以面向OOP编程的思想来考虑软件的类结构,这个销售汽车的代理也是一个类了。
【代理模式-JAVA代码实现】
新建一个买车的接 ...
一、前言
以前只知道抽象类与接口的区别,而不知道为什么会有这样的区别,看了模板模式的例子算是知其所以然了。
二、结构图
三、应用场景
比如说生成手机,生产的流程是相同的,但是具体的细节可能有所不同(比如手机的颜色,手机的类别,手机的大小等等)。
package TemplateDemo;
/**
* 这是一个抽象的模板类
一、前言
今天看了一篇写策略模式的博客,觉得里面举的例子挺有意思,至少会让你更加容易来记忆策略模式。
二、概论
策略模式又叫算法簇模式,就是定义了不同的算法簇,并且之间可以相互替换,此模式让算法的变化独立于使用算法的客户,可以动态改变对象的行为。
三、应用场景举例说明
刘备要到江东娶老婆了,走之前诸葛亮给赵云(伴郎)三个锦囊妙计,说是按天机拆开能解决棘手问题,嘿,还别说,真解决了大问题,搞到最后是周瑜陪了夫人又折兵,那咱们先看看这个场景是什么样子的。
先说说这个场景中的要素:三个妙计,一个锦囊,一个赵云,妙计是亮哥给的,妙计放在锦囊里,俗称就是锦囊妙计嘛,那 ...
使用eclipse插件Hibernate Synchronizer进行数据库的CRUD,下载附件。
需求:编写一个截取字符串的函数,输入一个字符串和字节数,输出为按字节数截取的字符串,但是要保证汉字不能截半个,如“我ABC” 4,应该截为"我AB",输入"我ABC汉DEF" 6,应该输出为"我ABC",而不是"我ABC+汉的半个"。
public static void split(String str,int split){
System.out.println(str.getBytes().length);
if(str.getBytes().length > split){
...
需求:查找数组中某个元素的下标
实现方法:二分法查找(折半查找,每次把表分成两半,因为已经排好序,所以每次只需要和中间的数比较,就能确定要查找的值在哪一半,然后不断分成两半,直到匹配,如果没有找到,则表示没有该元素)
public static int find(int x) {
int[] intsz = new int[] { 10, 22, 36, 47, 58, 69, 79, 83 };
int min = 0;
int max = intsz.length - 1;
while (min <= max) {
int y ...
java值传递与引用传递的区别
- 博客分类:
- java基础
在谈java值传递与引用传递之前必须搞清楚"形式参数"和"实际参数"两个概念
在一个方法中,比如method1(Object o)中,O就是形参,形参就是形式参数,当你调用这个方法时,要传入一个值,这个值叫做实际参数,也叫实参, ...
++运算符是对变量的值加1,--运算符是对变量的值减1,如:
int a=5; int b=10;
a++;//或++a; b--;//或--b;
a的值变成了6,b的值为9,++和--不论在变量名前还是在变量名后,都是对变量加1或减1;
在给变量赋值时++和--运算符在变量前和变量后有所不同如:
public class Test{
public static void main(String [ ] args) {
int a=5,b=5,c,d;
...
Windows与Windows系统之间可以很容易的共享文件。但要Windows与Linux
共享文件则需要架设Samba
服务器。Samba通过SMB协议,可以实现Windows与Linux
之间的文件共享。这里我们主要介绍如何安装配置Samba服务器以及添加Samba用户。
安装Samba服务器之间,需要关闭SELinux。
安装Samba
yum install cups-libs samba samba-common
编辑smb.conf配置文件
vi /etc/samba/smb.conf
请确保在配置文件中的[globle]区域看到如下代码,如果没有自行添 ...