小编a L*_*ner的帖子

字符串文字和永久生成内存区域

当我们说实习字符串存储在永久生成区域时,那么同样适用于字符串文字吗?或者它只适用于由inter()实现的字符串?

实际上博客文章通常说字符串池包含对字符串对象的引用,而实际字符串对象在堆中的某处.还有很多混乱,永久世代是IN堆还是外堆.(我使用jcosole它显示永久性不同于heap.many帖子说它作为堆的一部分,许多人说它是不同的)

编辑: 当我跑的时候:

public class stringtest2{
  public static void main(String args[]){
    int i=0;
    List<String> list=new ArrayList<String>();
    while(true){
      String s="hello"+i;
      String s1=i+"hello";
      String s2=i+"hello"+i;
      System.out.println(s);
      s.intern();

      s1.intern();
      s2.intern();
      list.add(s);
      list.add(s1);
      list.add(s2);
      i++;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我期待Java.lang.OutOfMemoryError: PermGen space但是我得到了:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
        at java.util.Arrays.copyOf(Arrays.java:2760)
        at java.util.Arrays.copyOf(Arrays.java:2734)
        at java.util.ArrayList.ensureCapacity(ArrayList.java:167)
        at java.util.ArrayList.add(ArrayList.java:351)
        at stringtest2.main(stringtest2.java:20)
Run Code Online (Sandbox Code Playgroud)

不应该 Java.lang.OutOfMemoryError: PermGen space

java string

10
推荐指数
1
解决办法
1593
查看次数

spring singleton scope - 每个bean每个容器

我在问我的问题时问这个问题:

弹簧单体范围

Spring singleton在参考手册中定义为每个bean的容器.

每个容器意味着如果我们喜欢:

ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml")
MyBean myobj=(MyBean)context.getBean("myBean"); //myBean is of singleton scope.
MyBean myobj1=(MyBean)context.getBean("myBean");
Run Code Online (Sandbox Code Playgroud)

beans.xml中:

<bean id="myBean" class="MyBean"/>
Run Code Online (Sandbox Code Playgroud)

然后myobj==myobj1会出现真实的.都指向同一个实例.

对于每个bean每个bean的每个部分短语,我有点困惑.对于每个豆子,我是否正确:

如果我们喜欢

ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml")
MyBean myobj=(MyBean)context.getBean("myBean"); 
MyBean myobj1=(MyBean)context.getBean("mySecondBean");
Run Code Online (Sandbox Code Playgroud)

beans.xml中:

<bean id="myBean" class="MyBean"/>
<bean id="mySecondBean" class="MyBean"/>
Run Code Online (Sandbox Code Playgroud)

然后myobj==myobj1会出现虚假.那意味着它们是两个不同的实例

java spring

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

用于spring和hibernate应用程序的虚拟主机

我必须托管使用JSP,Java 6,Spring 3,Hibernate 3,mySql,Tomcat 6 构建的Web应用程序.

我是新来的托管网络应用程序并有一些疑问: -

  1. 任何人都可以指导我,特别是从Spring和Hibernate的角度来看?

  2. 托管/运行Hibernate&Spring应用程序时出现的问题是什么?

  3. 任何提供Java托管的主机是否也会为Spring和Hibernate提供支持?

java spring web-hosting hibernate

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

运行时字符串连接评估

根据JLS(15.28常量表达式)表达式仅包含:

i)Literals of primitive type and literals of type String (§3.10.1, §3.10.2, §3.10.3,
§3.10.4, §3.10.5)
or
ii)Simple names (§6.5.6.1) that refer to constant variables (§4.12.4).
or
iii)...
Run Code Online (Sandbox Code Playgroud)

是一个不变的表达.

现在String s1="a"+"b";是一个常量表达式,将"ab"在编译时进行求值.

所以 s1="ab";

[1] 我正确地说,现在根据上述声明,字符串池中有三个对象: - "a","b","ab"???

现在,

final String s="a";
final String s1="b";
String s2=s+s1;  // is also constant expression and get evaluated at compile time.
Run Code Online (Sandbox Code Playgroud)

上面的代码将s2="a"+"b";在编译后转换为.

因此s2="ab";将自动存储在字符串池中.

但,

// note there is no final now.
String s="a";
String s1="b";
String s2="a"+"b"; …
Run Code Online (Sandbox Code Playgroud)

java

8
推荐指数
1
解决办法
2142
查看次数

枚举,单身和反序列化

枚举被认为是单身人士的最佳方式,其中一个原因是它隐含地继承了Serializable.

但是enums如何防止单身人员的反序列化问题?

java singleton enums deserialization

8
推荐指数
1
解决办法
1623
查看次数

在不使用HttpServletResponse的情况下设置响应内容类型

如何HttpServletResponse object在我的spring控制器中获取方法,以便我的应用程序与Http API保持松散耦合?

谢谢...

编辑:其实我想要的是在我的控制器中设置HttpServletResponse对象的ContentType.春天为此提供了任何方式,而没有将HttpServletResponse对象作为控制器方法中的参数?

content-type spring-mvc

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

在java4和java5中使用volatile关键字

volatile keyword在java4和java5之后使用有什么区别?

与此相关,

非原子变量(long/double)的读/写操作在声明为volatile时是原子的.

这对java4也是如此,或者从java5开始有效吗?

java

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

使用sql limit从表中反向检索行

我正在使用MySQL 中的SQL 限制db.Records来实现分页,需要得到

从最后一行向后检索。表中有几千条记录

我想一次检索 500 条记录以显示在页面中。

SELECT * FROM tbl_name ORDER BY some_col DESC
Run Code Online (Sandbox Code Playgroud)

将检索所有记录。

但我不想要所有记录,因为它们的数量有数千个。

如果我使用

SELECT * FROM tbl_name ORDER BY some_col DESC LIMIT 500
Run Code Online (Sandbox Code Playgroud)

它将按降序返回最后 500 条记录。

但我找不到从第一个块剩下的点开始反向检索下一个 500 块的方法。

mysql sql pagination

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

使用Spring电子邮件抽象层阅读邮件

Spring通过JavaMail Api提供抽象。

有许多示例描述如何使用Spring电子邮件抽象层发送邮件。

但是我该如何阅读电子邮件?

java email spring jakarta-mail

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

自动实习字符串文字

在第183和186行的com.sun.org.apache.xerces.internal.impl.XMLScanner的源代码中

183    protected final static String fVersionSymbol = "version".intern();

186    protected final static String fEncodingSymbol = "encoding".intern();
Run Code Online (Sandbox Code Playgroud)

为什么"版本""编码"通过使用intern()显式实现,而它们是字符串文字并且会自动实现内部连接?

java string

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