- 浏览: 318985 次
- 性别:
- 来自: 西安
最新评论
-
yjq8116:
getString 这个方法你有没有试过,是错误的。这段代码被 ...
ByteBuffer和String的互相转换 -
OnlyForJava:
博主,友情的提醒下,你的Ubuntu写错了
Ubutun上配置hadoop,hbase,zookeeper环境并安装
文章列表
今天看到一道题说实例方法可以直接调用什么?
题目如下:
为了解答这道题:写个程序看一下:
package com.wjy.test;
public class Father {
public static void publicStaticMethod(){
System.out.println("yes");
}
...
关于Iterator重新回到起点的办法
- 博客分类:
- Java泛型
说实话,没找到。重新赋值一次就行了。可能不太好。例子如下:
List<String> list=new ArrayList<String>();
Iterator<String> iterator;
list.add("hello");
list.add("world");
list.add("hahaha");
for(int i=0;i<2;i++){
iterator=list.iterator();
whi ...
递归实现倒序打印数组元素
- 博客分类:
- C语言
要想倒序打印,第一个想到的就是使用栈实现:将元素按照顺序都压入栈中,依次弹出并打印就实现了倒序打印。
大家想一想,其实递归就是天生的栈结构。所以,使用递归来实现数组的倒序输出,虽然效率可能不太好。
代码1:
#include <stdio.h>
#include<iostream>
using namespace std;
void foo(int *p,int le ...
说个以前不知道的事情
- 博客分类:
- Java解惑
1.看下面代码是合法的吗?
public class Complex{
private Complex instance=new Complex(2);
public Complex(int i){
System.out.println(i);
}
public static void main(String args[]){
Complex complex=new Complex(1);
}
}
输出结果:
Exception in thread "main" java.lang.StackOver ...
#include <stdio.h>
#include<iostream>
#define MAX_LENGTH 100
using namespace std;
char* mergeArray(char* arrayA,char* arrayB,int m,int n)
{
int i=0;
char temp;
char* arrayATail=&arrayA[m-1];
char* ruler=arrayATail;
for(i=0;i<n;i++){
while(*ruler>=arrayB[i])
...
JVM对final变量赋值的限制
- 博客分类:
- Java解惑
对于final变量的赋值,JVM对其是有限制的。为了保证安全性只允许其被赋值一次。
例如下面的程序就是不合法的:
虽然程序本身可能没有什么错误,但是Java的编译器认为这样是不安全的。解决办法有很多,下面给个不错的解决办法:
如上所示,不仅解决了问题(final只被赋值了一次),还增加了程序的可读性。 ***********************************************************************************************************************************
如 ...
optionally enclosed by
- 博客分类:
- 数据库
我试了一下optionally enclosed by '"'左边没引号右边有引号:成功,原样导入111"222""333"""左边有引号右边没引号:失败, second enclosure string not present"44
虚拟机类加载机制
- 博客分类:
- 深入理解Java虚拟机
虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转化解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。
与那些在编译时需要进行连接工作的语言不同,在Java语言里面,类型的加载,连接和初始化过程都是在程序运行期间完成的。
将csv文件导入/导出mySQL
- 博客分类:
- 数据库
最近有一个很大的csv文件,想导入到mySQL统一进行处理。csv的结构如下图所示:
现在需要新建一个表:
对应csv文件中的记录。
最后开始导入到mySQL中:
by '\r\n' 或者写成by '\n'都是可以的。 ...
Java之内存分析和String对象
Java中内存分析:
栈(Stack) :存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中)。
堆(heap):存放所有new出来的对象。
常量池(constant pool):在堆中分配出来的一块存储区域,存放储显式的String常量和基本类型常量(float、int等)。另外,可以存储不经常改变的东西(public static final)。常量池中的数据可以共享。
静态存储:存放静态成员(static定义的)。
...
Java中的运行时常量池
- 博客分类:
- 深入理解Java虚拟机
运行时常量池(Runtime Constant Pool)是方法区的一部分。class文件中除了有类的版本,字段,方法,接口等描述信息外,还有一项信息是常量池(Constant Pool Table)用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后存储到方法区的运行时常量池中。
Java语言并不要求常量一定只有在编译期才能产生,并非预置如Class文件中常量池的内容才能进入方法区运行时常量池,运行期间也可能将新的常量放入池中。
Class文件中的常量池中存放两大类常量:字面量(literal)和符号引用(Symbolic ...
判断对象是否存活的算法
- 博客分类:
- 深入理解Java虚拟机
许多教科书来判断对象师傅偶存活的算法是这样的:给对象添加一个引用计数器,每当有一个地方引用它时,计数器的值就加1;当引用失效时,计数器的值就减1;任何时刻计数器为0的对象就是不可能再被使用的。
上面这个算法叫做“引用计数算法”,实现简单,判定效率高昂,但是无法解决对象之间相互循环引用的问题。
例如:
MyClass referenceA=new MyClass();
MyClass referenceB=new MyClass();
referenceA.instance=ref ...
浅谈System.gc()垃圾收集
- 博客分类:
- 深入理解Java虚拟机
1.垃圾收集算法的核心思想
Java语言建立了垃圾收集机制,用以跟踪正在使用的对象和发现并回收不再使用(引用)的对象。该机制可以有效防范动态内存分配中可能发生的两个危险:因内存垃圾过多而引发的内存耗尽,以及不恰当的内存释放所造成的内存非法引用。
垃圾收集算法的核心思想是:对虚拟机可用内存空间,即堆空间中的对象进行识别,如果对象正在被引用,那么称其为存活对象,反之,如果对象不再被引用,则为垃圾对象,可以回收其占据的空间,用于再分配。垃圾收集算法的选择和垃圾收集系统参数的合理调节直接影响着系统性能,因此需要开发人员做比较深入的了解。
2.触发主GC(Garbage Collect ...
运行时数据区域
- 博客分类:
- 深入理解Java虚拟机
程序计数器:由于Java虚拟机的多线程是通过程序轮流切换并分配处理机执行时间的方式来实现的。同一时间,一个处理器智能执行一条线程中的命令。因此,为了线程切换后能恢复到正确的执行位置,每条线成都需 ...