- 博客(45)
- 资源 (5)
- 收藏
- 关注
转载 java 直接内存
直接内存(Direct Memory)并不是虚拟机运行时数据区的一部分,也不是Java虚拟机规范中定义的内存区域,但是这部分内存也被频繁地使用,而且也可能导致OutOfMemoryError异常出现,所以我们放到这里一起讲解。在JDK 1.4中新加入了NIO(New Input/Output)类,引入了一种基于通道(Channel)与缓冲区(Buffer)的I/O方式,它可以使用Native函数库直
2016-03-11 17:24:58 4804 1
转载 JAVA反射机制
1 概述JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。JAVA反射(放射)机制:“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。
2016-03-11 17:15:06 490
转载 深入研究java.lang.Class类
转自:http://lavasoft.blog.51cto.com/62575/15433/Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识。这项信息纪录了每个对象所属的类。虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是Class类。【Class类封装一个对象和接口运行时的状态,当装载类时,Class类型的对象自动创建。】Class 没有公
2016-03-11 16:27:17 345
转载 Java体系和一些基本概念
转自:http://www.cnblogs.com/gw811/archive/2012/10/18/2729490.htmlJVM:Java Virtual Machine(Java虚拟机),负责执行符合规范的Class文件。JRE: Java Runtime Environment (java运行环境),包含JVM和类库。JDK: Java Development Kit(java开发工
2016-03-11 15:30:16 413
转载 Java内存管理:深入Java内存区域
转自:http://www.cnblogs.com/gw811/archive/2012/10/18/2730117.htmlJava与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。1 概述对于从事C和C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的皇帝,又是从事最基础工作的劳动人民—既拥有每一个对象的“所有权”,又担负着每一个对
2016-03-11 15:23:26 352
转载 java中volatile关键字的含义
转自:http://www.cnblogs.com/aigongsi/archive/2012/04/01/2429166.html在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。synchron
2016-03-11 14:05:39 259
原创 Java命令行
1 javacjavac是JDK的标准编译工具,常见的形式为:javac <选项> <源文件>。它可能的选项包括:-g:生成所有调试信息。-g:none:生成无调试信息。-g:{lines,vars,source}:生成只有部分调试信息。-nowarn:生成无警告。-verbose:输出关于编译器正在做的信息。-deprecation:输出使用了不鼓励使用的API的源程序位置。-classpath
2016-03-11 13:15:08 714
转载 Java Integer的内涵
转自:http://www.cnblogs.com/DreamSea/archive/2011/11/20/2256396.html先来看一段代码与其输出结果:public class IntegerTest { public static void main(String[] args) { objPoolTest(); } public st
2016-03-11 02:19:04 602
转载 Java类的加载与实例创建
以下面的代码作为例子 public class AppMain { // 运行时, jvm 把appmain的信息都放入方法区 public static void main(String[] args) { // main 方法本身放入方法区。 Sample test1 = new Sample(" 测试1 "); // test1是引用,所以放到栈区里
2016-03-11 02:14:38 698
原创 Java堆、栈、方法区、常量池
1 堆与栈Java的数据根据不同的使用情况,有不同的分类,接下来先简单概括一下各种数据类别(不是类型)的内存分配情况,首先帮助区分一下java堆和java栈:基础数据类型(Value type)直接在栈(stack)空间分配,方法的形式参数,直接在栈空间分配,当方法调用完成后从栈空间回收。引用数据类型,需要用new来创建,既在栈空间分配一个地址空间(reference),又在堆空间分配对象的类变
2016-03-11 01:57:38 7697 2
原创 HashMap
java的集合类主要由两个接口生成: (1) Collection:Set(无序集,只可以根据元素本身来访问,所以不能重复),List(有序集,元素可以重复),Queue(队列)(2) Map:key-value对。将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。Map 接口提供三种collection 视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容。映
2016-03-09 21:24:17 530
原创 Integer.highestOneBit(int i)的作用
源码 /** * Returns an {@code int} value with at most a single one-bit, in the * position of the highest-order ("leftmost") one-bit in the specified * {@code int} value. Returns zero if
2016-03-09 19:58:19 3420
原创 Symmetric Tree
recursively/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class So
2016-03-09 17:58:35 394
原创 House Robber
You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent house
2016-03-09 16:25:32 355
转载 Java中的String为什么是不可变的?
转自:http://www.2cto.com/kf/201401/272974.html什么是不可变对象?众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类
2016-03-08 23:34:47 449
原创 Java clone()
Object 中有一个projected clone() 方法,所以很多类都支持这个“自我克隆”的方法。自定义类想实现clone() 方法只需要实现Cloneable接口即可。它跟Serializable一样,里面没有任何方法,只是一个标志性的接口。一般来讲,利用clone() 可以复制出一个一模一样的实例,而且两者完全隔离。因为它是直接在内存中,将所有数据拷贝一份到另外的区域,效率很高。根据这个原
2016-03-08 22:52:08 328
原创 Java 包装类
这篇博文并不会全面的介绍Java的面向对象,很多知识模块我认为弄清楚其中一部分,其他都大同小异的,我都没有提。所以一个大标题下,介绍的组件并不全面。1 Object是所有类的父类,它的每一个方法都很重要。2 包装类先说一说有共性的东西:自动装箱、拆箱:基本数据类型和对应的包装类可以相互赋值。所有的类都有toString方法,它的一般作用是“自我表述”。除了Character之外,其余的包装类都
2016-03-08 20:59:59 372
原创 Java序列化
Java序列化与反序列化是什么?为什么需要序列化与反序列化?如何实现Java序列化与反序列化?本文围绕这些问题进行了探讨。1 Java序列化Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。2 为什么需要序列化我们知道,当两个进程进行远程通信时,可以相互发送各种类型的数据,包括文本、图片、音频、视频等, 而这些数据都会以二进制序列的形式在
2016-03-08 20:23:16 532
原创 参数是数组的引用变量,判断数组是否为空
以test函数举例:public int test(int[] nums) {……}错误的判断方法:if(nums == null){……}的判断方法:if(nums.length == 0){……}
2016-03-08 15:57:36 428
原创 *Balanced Binary Tree
Given a binary tree, determine if it is height-balanced.For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by
2016-03-08 15:33:34 317
原创 Implement Queue using Stacks
Implement the following operations of a queue using stacks.push(x) – Push element x to the back of queue.pop() – Removes the element from in front of queue.peek() – Get the front element.empty() –
2016-03-08 14:48:10 253
原创 Merge Two Sorted Lists
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.其实就是在考察归并排序。/** * Definition for singly-linked list. * pub
2016-03-08 12:57:38 272
原创 Power of Three
Given an integer, write a function to determine if it is a power of three.Follow up: Could you do it without using any loop / recursion?public class Solution { public boolean isPowerOfThree(int n)
2016-03-08 11:12:36 250
原创 Ugly Number
Write a program to check whether a given number is an ugly number.Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. For example, 6, 8 are ugly while 14 is not ugly since it in
2016-03-07 18:29:59 282
原创 Climbing Stairs
You are climbing a stair case. It takes n steps to reach to the top.Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?利用递归的思想:逆向思想。如果你想上到第n个台阶,有几种可能?答案是,2种
2016-03-07 18:02:42 324
原创 Number of 1 Bits
1 Java位运算public class Test { public static void main(String[] args) { // 1、左移( << ) // 0000 0000 0000 0000 0000 0000 0000 0101 然后左移2位后,低位补0:// // 0000 0000 0000 0000 0000 00
2016-03-07 16:20:28 389
原创 Roman to Integer/Integer to Roman
1 Roman to IntegerGiven a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999.首先,想做出这道题得了解一下罗马数字。罗马数字有如下符号:I(1)V(5)X(10)L(50) C(100)D(500)M(100
2016-03-07 14:22:05 445
原创 Reverse Linked List
Reverse a singly linked list.Hint: A linked list can be reversed either iteratively or recursively. Could you implement both?1 iteratively原本的链表如果是这样的话:1 --> 2 --> 3 --> 4 --> 5我们要做的就是:1 <-- 2 <-- 3 <-
2016-03-06 21:21:05 317
原创 Contains Duplicate
Given an array of integers, find if the array contains any duplicates. Your function should return true if any value appears at least twice in the array, and it should return false if every element is
2016-03-06 18:48:39 264
原创 Excel Sheet Column Number/Excel Sheet Column Title
Excel Sheet Column NumberRelated to question Excel Sheet Column TitleGiven a column title as appear in an Excel sheet, return its corresponding column number.For example: A -> 1 B -> 2 C ->
2016-03-06 18:40:45 399
原创 Valid Anagram
Given two strings s and t, write a function to determine if t is an anagram of s.For example, s = “anagram”, t = “nagaram”, return true. s = “rat”, t = “car”, return false.Note: You may assume the s
2016-03-06 17:02:44 333
原创 Java定义class
1 finalfinal可以用来修饰 类、方法 和 变量。修饰类:表明这个类不能被继承;修饰方法:使用final方法的原因是把方法锁定,以防任何继承类修改它的含义。因此,如果想明确禁止该方法在子类中被覆盖的情况下才将方法设置为final的。类的private方法会隐式地被指定为final方法。修饰变量:对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更
2016-03-06 01:36:28 1296
原创 Maximum Depth of Binary Tree
Given a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node./** * Definition for a binary tree node.
2016-03-06 00:28:26 313
原创 StringBuffer源码分析
StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类,所以在实际使用时,如果经常需要对一个字符串进行修改,例如追加、插入、删除等操作,使用StringBuffer要更加适合一些。对于StringBuffer对象的每次修改都会改变对象自身,这点是和String类最大的区别。public final class StringBuffer extends A
2016-03-05 18:12:31 1624
原创 JDK中常用包简要说明
java.applet:提供创建 applet 所必需的类和 applet 用来与其 applet 上下文通信的类。java.awt:包含用于创建用户界面和绘制图形图像的所有类。java.beans:包含与开发 beans 有关的类,即基于 JavaBeans TM 架构的组件。java.io:通过数据流、序列化和文件系统提供系统输入和输出。java.math:提供用于执行任意精度整数算法
2016-03-05 16:25:35 628
转载 优化幂运算
转自:http://blog.csdn.net/zhutulang/article/details/7515772计算一个整数的幂 X^N 的常见算法是使用 N-1 次乘法自乘。然而我们可以找到更好的算法。可以应用这样一种递归算法:如果 N 是偶数,有X^N=X^(N/2) * X^(N/2), 如果 N 是奇数,则有 X^N =X^[(N-1)/2] * X^[(N-1)/2] * X 。为了说
2016-03-05 16:03:51 1081
原创 数组实现stack
package stack;import java.util.EmptyStackException;public class MyStack<E> { //Stack 的数组实现 private int CAPACITY; private Object[] theArray; private int topOfStack; public MyStack()
2016-03-05 15:14:14 501
原创 Nim Game
You are playing the following Nim Game with your friend: There is a heap of stones on the table, each time one of you take turns to remove 1 to 3 stones. The one who removes the last stone will be the
2016-03-05 13:38:39 452
转载 异或运算的神奇运用
转自:http://www.physixfan.com/archives/563/Xor运算是位运算的一种,和And、Or运算类似,假如a、b都是布尔变量,则a Xor b被定义为:a、b相异则为真(所以中文名字叫做异或),a、b相同则为假。其真值表为:1 Xor 0 = 10 Xor 1 = 11 Xor 1 = 00 Xor 0 = 0众所周知,位运算也可以用于两个数之间,其定义就是把这两
2016-03-05 13:05:37 5061
黑白棋(奥赛罗)Android APP完整源代码工程包
2016-01-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人