我初学春天,ESP反转控制.我很困惑地理解了下面的区别
<bean id="demo" class="Demo" lazy-init="false"/>
<bean id="demo" class="Demo" lazy-init="true"/>
<bean id="demo" class="Demo" lazy-init="default"/>
Run Code Online (Sandbox Code Playgroud)
据我所知:lazy-init = false在启动时创建bean,而lazy-init = true在启动时不创建bean,而是在请求特定bean时创建bean.在这里纠正我,如果我的解释是错误的.
究竟什么是lazy-init的默认行为?它将如何实例化?
我有一个jar,其内容如下所示,

以下是我的清单文件
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.3
Created-By: 1.7.0_06-b24 (Oracle Corporation)
Main-Class: org.sai.com.DerbyDemo
Class-Path: derby.jar derbyclient.jar derbynet.jar derbytools.jar
Run Code Online (Sandbox Code Playgroud)
当我尝试运行jar时,它抛出了一个ClassNotFoundExcception意思,它没有引用外部jar中的jar.
在Class-Path属性中,如何derby.jar在实际jar中引用jar(等)?
我偶然发现了java序列化.我在许多文档和书中都读到静态和瞬态变量无法用Java序列化.我们声明serialVersionUid如下.
private static final long serialVersionUID = 1L;
Run Code Online (Sandbox Code Playgroud)
如果静态变量未被序列化,那么在反序列化过程中我们经常会遇到异常.
java.io.InvalidClassException
Run Code Online (Sandbox Code Playgroud)
其中提取了反序列化对象的serialVersionUID,并与加载的类的serialVersionUID进行比较.
据我所知,我认为如果静态变量无法序列化.这个例外毫无意义.我可能错了,因为我还在学习.
是否存在"java中的静态和瞬态变量无法序列化"的神话.请纠正我,我对这个概念一团糟.
我正在使用Java中的数组,我有一个问题.我知道Java中的数组是类似数据类型的集合,如下所示:
int[] x = new int[]{1,2,3};
Run Code Online (Sandbox Code Playgroud)
上面的声明可以读作一个Integer数组,它是整数类型的集合.
考虑一下:
Object[] x = new Object[]{1,2,3,"srk"};
Run Code Online (Sandbox Code Playgroud)
在这里,我可以说上面是一个数组,它是一个不相似的数据类型的集合,还是一个Object类似数据类型的数组,即对象?
我对此感到困惑和持怀疑态度.在Java中,是否可以创建一个可以容纳不同数据类型的数组或任何类型的集合?
首先感到遗憾的是,这是一个非常基本的问题,我宣传我仍然是一个代码猴.我在接受采访时被要求阐明System.out.println(); 我解释了以下方式
//this class belongs to java.lang package
class System{
public static PrintStream out;
}
//this class belongs to java.io package
class PrintStream{
public void println..
}
Run Code Online (Sandbox Code Playgroud)
我已经解释过System.out是有效的,因为这是我们在java中访问静态变量的方式,而out是PrintStream的一个对象,因此我们可以访问它的方法.
System.out.pritnln();
Run Code Online (Sandbox Code Playgroud)
他让我模拟一个类似的程序,我跟踪它并没有用,因为System.out返回null
我的问题是在java中实例化的对象在哪里?如果我没错,它是一个预定义的对象吗?应该是什么细致的解释.
从技术上讲,我们应该叫什么?是PrintStream类型的变量还是应该将其称为PrintStream类型的对象?
我正在开发一个插件项目,我正在使用Eclipse后台处理.Display类
的syncExec()和asyncExec()方法有什么区别?它们适用于哪些情况?任何例子都可能有所帮助.
我刚刚开始使用Spring IOC概念.我经常看到互联网上发现的大多数例子都使用代码来获取对象.
ApplicationContext appContext = new ClassPathXmlApplicationContext("applicationContext.xml");
Hello hello = (Hello) appContext.getBean("hello");
Run Code Online (Sandbox Code Playgroud)
作为stackoverflow中这些问题1和2的参考.我推断,没有必要在代码中使用appContext.getBean("hello"),这被认为是不好的做法.此外,不再推荐.在这里纠正我,如果我的推论是错误的.
保持这一点,我相应地改变了我的项目.这是我的applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">
<bean id="utilClassRef" class="org.hd.derbyops.DUtils" lazy-init="false" />
<bean id="appContext" class="org.hd.derbyops.ContextProvider" lazy-init="false">
<property name="utils" ref="utilClassRef" />
</bean>
</beans>
Run Code Online (Sandbox Code Playgroud)
我的contextProvider类代码
public class ContextProvider implements ApplicationContextAware {
private static ApplicationContext ctx;
/**
* Objects as properties
*/
private static DUtils utils;
public void setApplicationContext(ApplicationContext appContext)
throws BeansException {
ctx = appContext;
}
public static ApplicationContext getApplicationContext() {
return ctx; …Run Code Online (Sandbox Code Playgroud) 我正在深入研究Java的基础知识.我在本文中推断,java equals方法意味着,如果两个对象相等,那么它们必须具有相同的hashCode().
这是我的例子.
public class Equals {
/**
* @param args
*/
public static void main(String[] args) {
String a = new String("a");
String b = new String("a");
System.out.println("a.hashCode() "+a.hashCode());
System.out.println("b.hashCode() "+b.hashCode());
System.out.println(a == b);
System.out.println(a.equals(b));
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
a.hashCode()97
b.hashCode()97
false
true
实际Java语言等于方法
public boolean equals(Object obj) {
return (this == obj);
}
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,a.equals(b)返回true,意味着满足条件a == b.但那么为什么a == b在这个例子中返回false?
hashCode和地址不一样吗?另外,当我们说a == b或其他什么时,hashCode是否被比较?
如何在Eclipse RCP项目中使用log4j日志API?
作为一种解决方法,U试图创建一个具有log4j jar的新OSGI Bundle,下面是bundle结构:

我用一个名为loggingtest的视图(模板)创建了一个基本的RCP应用程序.我已经在loggingtest项目的依赖项选项卡中包含了bundle log4.在Activator start方法中,我放置了以下代码
Logger logger = Logger.getLogger(Activator.class);
logger.info("Info starting");
logger.warn("Warning starting");
logger.error("Error starting");
Run Code Online (Sandbox Code Playgroud)
所以一切都很好,到目前为止,我能够使用log4j API和中途,我很困惑,因为在哪里放置log4j.properties文件,我怎么能进一步得到一个包含所有日志语句的日志文件.
更准确地说,下面是我的loggingtest项目清单文件的内容
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: LoggingTest
Bundle-SymbolicName: LoggingTest; singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: loggingtest.Activator
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
log4j;bundle-version="1.0.0"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Run Code Online (Sandbox Code Playgroud) 我正在阅读一些用分隔符分隔的文本文件.
我的文本文件内容示例
Avc def efg jksjd
1 2 3 5
3 4 6 0
逐行使用散列映射将其保存在内存中,散列映射将行号作为整数类型的键,每行文本文件作为List对象
考虑一下,我的地图会存储这样的信息
整数列表
1 [Avc def efg jksjd]
我正在使用Apache POI写入excel.使用Apache POI写入excel时,我遵循这种方法,这是我的代码片段
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("Sample sheet");
Map<Integer, List<Object>> excelDataHolder = new LinkedHashMap<Integer, List<Object>>();
int rownum = 0;
for (Integer key : keyset) {
Row row = sheet.createRow(rownum++);
List<Object> objList = excelHolder.get(key);//excelHolder is my map
int cellnum = 0;
for (Object obj : objList) {
Cell cell = row.createCell(cellnum++);
cell.setCellValue((Date) obj);
} …Run Code Online (Sandbox Code Playgroud)