我正在考虑一个类驻留在内存中的多少,以防内存中的其他对象没有访问它?
例如,假设我有一些这样的类:
public class OrderNumber {
private static long counter = 0;
public static long getOrderNumber(){
if (counter >= 100) {
return counter = 1;
}
return ++counter;
}
}
Run Code Online (Sandbox Code Playgroud)
我从另一个类调用它的静态方法:
long number = OrderNumber.getOrderNumber();
Run Code Online (Sandbox Code Playgroud)
每次我调用它,它都会返回一个增量数字,1,2,3,4 ......
所以,我的问题是这个方法返回初始值的概率是多少,它应该返回序列值?
在java中,以下行是否有可能(甚至0.01%)抛出NullPointerException?
public static void handleRequest(String str1){
if (str1 == null){ // this line throws NPE, how come !! is it a JDK1.5 bug!!
return null;
}
// other staff
}
Run Code Online (Sandbox Code Playgroud)
实际上我在代码中掉了一些bug,它说方法中的exact上面一行会抛出一个java.lang.NullPointerException?!
我使用以下代码来验证针对XSD架构的XML文件
package com.forat.xsd;
import java.io.IOException;
import java.net.URL;
import javax.xml.XMLConstants;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
public class XSDValidate {
public void validate(String xmlFile, String xsd_url) {
try {
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = factory.newSchema(new URL(xsd_url));
Validator validator = schema.newValidator();
ValidationHandler handler = new ValidationHandler();
validator.setErrorHandler(handler);
validator.validate(getSource(xmlFile));
if (handler.errorsFound == true) {
System.err.println("Validation Error : "+ handler.exception.getMessage());
}else {
System.out.println("DONE");
}
} catch (SAXException e) {
e.printStackTrace();
} catch …Run Code Online (Sandbox Code Playgroud) 这是GWT PopupPanelShowCase:http://gwt.google.com/samples/Showcase/Showcase.html#!CwBasicPopup
当用户点击面板时,Panel隐藏了..
我需要的是当用户将鼠标移出面板区域时隐藏它...
怎么做到这一点?
我已经读过,objective-c程序需要objective-c运行时才能运行.
AFAIK,两个C/C++程序都不需要运行任何运行时环境.因为生成的二进制代码正由底层OS直接执行.
那么这意味着Objective-c程序需要一个冗余层来运行,正确吗?如果是这样,这个层看起来像Java VM和.net运行时还是看起来像Qt运行时(在一些额外的库中)?
EDIT:
一些读出后,我发现,在objc编译器生成在生成的编译代码一些更多的信息,其负责的许多东西,如方法通过(objc_sendMsg(),introspection及其他)
谢谢.
我有以下代码:
#include <stdio.h>
#include <stdlib.h>
#define OUT
void getDataFromServer(OUT int** array, OUT int* size)
{
static int tmpArr[] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F};
*size = sizeof tmpArr / sizeof(int);
printf("Before realloc: %p\n", *array);
*array = realloc(*array, sizeof(*array) * *size);
printf("After realloc : %p\n", *array);
int i=0;
for (; i < *size; i++) …Run Code Online (Sandbox Code Playgroud) Integer i = null;
if (i == 3)
Run Code Online (Sandbox Code Playgroud)
为什么上面的第二行抛出一个NullPointerException,恕我直言,这只有一个含义,即Wrapper Object i将被取消装箱,产生异常,例如:
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(null);
int x = list.get(0);
Run Code Online (Sandbox Code Playgroud)
编辑:你能为我提供一些格式的文件吗?
我在rightBarButtonItem上有以下自定义按钮
UIButton *button1 = [[UIButton alloc] init];
button1.frame=CGRectMake(0,0,105,30);
[button1 setBackgroundImage:[UIImage imageNamed: @"image1.png"] forState:UIControlStateNormal];
[button1 addTarget:appDelegate action:@selector(Open_Link1) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithCustomView:button1];
[button1 release];
Run Code Online (Sandbox Code Playgroud)
我需要将rightBarButtonItem向上移动2 px ...
我试过设置它但不起作用!
哪个更好?
List list = ... //get list from somewhere
for (int i=0; list != null && i < list.size(); i++){
// ...
}
Run Code Online (Sandbox Code Playgroud)
要么?
List list = ... //get list from somewhere
if (list != null){
for (int i = 0; i < list.size(); i++){
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
我从这里得到了这个想法:Scala还是Java?探索神话和事实
java8-ea发行版并在Array.sort和之间进行了快速比较Arrays.parallelSort.这就是结果:

我可以理解,praralleSort至少应该像普通老式机器一样sort,如果不是更快......但事实并非如此.
惠普ProBook Intel Core i5与4G RAM上Ubuntu 13.04 Linux同版本的JDK:Java HotSpot(TM) 64-Bit Server VM (build 25.0-b23, mixed mode)
package com.cmd;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
for (int i=100; i <= 10_000_000; i*=10){
runTest(i);
}
}
private static void runTest(final int size){
// Fist obtain two Arrays of same data
Employee[] empArrForSort = createVeryLargeEmpArray(size);
Employee[] empArrForSortCopy = Arrays.copyOf(empArrForSort, …Run Code Online (Sandbox Code Playgroud) java ×6
boxing ×1
c ×1
classloader ×1
coding-style ×1
expression ×1
gwt ×1
iphone ×1
java-8 ×1
jaxp ×1
objective-c ×1
panel ×1
popup ×1
realloc ×1
runtime ×1
schema ×1
string ×1
wrapper ×1
xsd ×1