小编srk*_*srk的帖子

lazy-init的Spring默认行为

我初学春天,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的默认行为?它将如何实例化?

spring spring-ioc

55
推荐指数
3
解决办法
11万
查看次数

罐子里面的参考罐子

我有一个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 jar manifest executable-jar

53
推荐指数
4
解决办法
9万
查看次数

是否在序列化过程中序列化了静态变量

我偶然发现了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

36
推荐指数
3
解决办法
4万
查看次数

如何声明不同数据类型的数组

我正在使用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中,是否可以创建一个可以容纳不同数据类型的数组或任何类型的集合?

java arrays

22
推荐指数
2
解决办法
6万
查看次数

在System.out.println()中输出

首先感到遗憾的是,这是一个非常基本的问题,我宣传我仍然是一个代码猴.我在接受采访时被要求阐明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类型的对象?

java jvm system

18
推荐指数
2
解决办法
1万
查看次数

Display类的syncExec()和asyncExec()之间的区别

我正在开发一个插件项目,我正在使用Eclipse后台处理.Display
syncExec()asyncExec()方法有什么区别?它们适用于哪些情况?任何例子都可能有所帮助.

eclipse-rcp

13
推荐指数
2
解决办法
1万
查看次数

如何在实现Spring IOC时避免使用ApplicationContext.getBean()

我刚刚开始使用Spring IOC概念.我经常看到互联网上发现的大多数例子都使用代码来获取对象.

ApplicationContext appContext = new ClassPathXmlApplicationContext("applicationContext.xml");
Hello hello = (Hello) appContext.getBean("hello"); 
Run Code Online (Sandbox Code Playgroud)

作为stackoverflow中这些问题12的参考.我推断,没有必要在代码中使用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 spring inversion-of-control java-ee spring-ioc

12
推荐指数
1
解决办法
5万
查看次数

equals()方法的工作原理

我正在深入研究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是否被比较?

java equals

9
推荐指数
1
解决办法
2万
查看次数

如何在Eclipse RCP中使用log4j?

如何在Eclipse RCP项目中使用log4j日志API?

作为一种解决方法,U试图创建一个具有log4j jar的新OSGI Bundle,下面是bundle结构:

log4j是一个外部插件

用一个名为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)

rcp swt eclipse-plugin jface eclipse-rcp

7
推荐指数
1
解决办法
8550
查看次数

将大文本文件数据写入excel

我正在阅读一些用分隔符分隔的文本文件.

我的文本文件内容示例

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)

java apache-poi aspose

6
推荐指数
1
解决办法
7137
查看次数