小编Shu*_*lag的帖子

如何使用java 10的Application Class-Data Sharing功能?

我在Oracle doc https://docs.oracle.com/javase/8/docs/technotes/guides/vm/class-data-sharing.html上阅读了关于CDS的内容.

我理解的是加载jvm所需的系统类文件被解析,验证,然后存储在jre/lib/[arch] /client/classes.jsa的存档中.此外,它们还为jvm提供了内存映射,因此jvm根据归档中给出的映射信息直接映射内存.因此,每次jvm实例启动时,这都会减少类加载的开销.如果错了请纠正我.

现在来到java 10,我如何为我的应用程序代码实现这一目标?其次,完整的应用程序代码是否有资格获得CDS或是否有一些限制?

java jvm java-10

15
推荐指数
2
解决办法
2167
查看次数

具有不同类型表达式的三元运算符

我正在玩三元运算符并注意到一些奇怪的东西.我的代码如下:

class Main {

  static void foo(int a){
    System.out.println("int");
  }

  static void foo(String a){
    System.out.println("String");
  }

  static void foo(Object a){
    System.out.println("object");
  }

  public static void main(String[] args) {
    foo(2==3 ? 0xF00:"bar");
    System.out.println((2==3 ? 0xF00:"bar").getClass().getName());
  }
}
Run Code Online (Sandbox Code Playgroud)

结果如何

宾语

java.lang.String中

第一行结果显示该指令使用object参数传递给foo方法.

指令本身导致String的第二行.

题:

  1. 为什么结果是String编译器决定使用Object?

  2. 这是因为类型模糊吗?

  3. 如果是,那么为什么获取类名返回java.lang.String

java ternary-operator

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

Java 10 中的 java.io.Reader TransferTo(java.io.Writer) 方法是什么?InputStream有类似的方法吗?

我阅读了 Java 10 文档java.io.Reader.transferTo(...),它说:

从此读取器读取所有字符,并按照读取顺序将字符写入给定写入器

transferTo中的 方法Reader将非常有用,因为目前将数据从读取器复制到写入器非常冗长。由于我们在现实生活中经常使用InputStreamOutputStream使用它们,是否有类似的方法?

java inputstream reader java-10

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

如何通过使用 JPA + Hibernate 和 Spring-boot 在一个数据库中使用多个模式?

我需要它来访问一个数据库(MySQL)中的 2 个不同模式。

我在这里写了两个配置类:

package twodb.webfi.config;
import java.util.Properties;
import javax.persistence.EntityManagerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;   
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver;
import org.springframework.orm.hibernate4.HibernateExceptionTranslator;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

@Configuration
@ComponentScan
@EnableTransactionManagement
@EnableJpaRepositories(basePackages={"twodb.webfi","twodb.mc"},
entityManagerFactoryRef = "entityManagerFactory1", 
transactionManagerRef = "transactionManager1",
considerNestedRepositories = true)
public class FirstConfig {

@Autowired
private Environment env;

@Bean
public PlatformTransactionManager transactionManager1()
{
    EntityManagerFactory factory = entityManagerFactory1().getObject();
    return new JpaTransactionManager(factory);
}

@Bean
public …
Run Code Online (Sandbox Code Playgroud)

java spring spring-security spring-data-jpa spring-boot

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

jvm中pop和pop2指令有什么区别?

我参考了下面的oracle jvm 文档

\n\n

https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-6.html#jvms-6.5.pop

\n\n
\n

pop操作 弹出栈顶操作数的值

\n\n

格式

\n\n

弹出表单 弹出 = 87 (0x57)

\n\n

操作数堆栈...,值\xe2\x86\x92

\n\n

...

\n\n

描述 从操作数栈中弹出顶部值。

\n\n

除非 value 是类别 1 计算类型 (\xc2\xa72.11.1) 的值,否则不得使用 pop 指令。

\n\n

pop2操作 弹出操作数栈顶部的一个或两个值

\n\n

格式

\n\n

pop2 形式 pop2 = 88 (0x58)

\n\n

操作数堆栈形式 1:

\n\n

..., 值2, 值1 \xe2\x86\x92

\n\n

...

\n\n

其中 value1 和 value2 都是类别 1\n 计算类型 (\xc2\xa72.11.1) 的值。

\n\n

表格2:

\n\n

...,值 \xe2\x86\x92

\n\n

...

\n\n

其中 value 是类别 2 …

java jvm

4
推荐指数
1
解决办法
1049
查看次数

Spring配置类如何获取其方法所期望的对象实例?

Spring中有几个功能对我来说是一种黑盒子.在这种情况下,我正在使用websockets,并且@Configuration类使用覆盖的方法实现或扩展某些东西,这些方法需要将实例化的对象作为参数.

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {

    @Override
    public void configureMessageBroker(MessageBrokerRegistry registry) {
        registry.enableSimpleBroker("/topic");
        registry.setApplicationDestinationPrefixes("/app");
    }
}
Run Code Online (Sandbox Code Playgroud)

方法configureMessageBroker需要MessageBrokerRegistry类的实例,但整个项目中没有任何bean配置.

我的问题是,Spring在哪里获得这些类的实例?

java spring

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

生成Hibernate映射文件时未创建注释

我正在跟踪此链接以生成休眠文件

https://www.mkyong.com/hibernate/how-to-generate-code-with-hibernate-tools/

文件已生成但没有注释。我检查了“ generate EJB3注解”,但仍然无法正常工作,数据库是Postgres。我曾经用相同的方法做过,而且运行良好。.几周前,我升级到日食并改变了工作场所,因为那时它不工作..有谁知道该活动是否有日志文件?也许我可以在那找到一些东西?

这是我的hibernate.cfg.xml文件

    <property name="hibernate.bytecode.use_reflection_optimizer">false</property>
    <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
    <property name="hibernate.connection.password">password</property>
    <property name="hibernate.connection.url">jdbc:postgresql://xxxxx/yyy</property>
    <property name="hibernate.connection.username">user</property>
    <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
    <!-- <property name="hibernate.enable_lazy_load_no_trans">false</property> -->
    <property name="hibernate.search.autoregister_listeners">true</property>
    <property name="hibernate.validator.apply_to_ddl">false</property>
    <property name="hibernate.temp.use_jdbc_metadata_defaults">false</property>
    <property name="hibernate.enable_lazy_load_no_trans">true</property>


</session-factory>
Run Code Online (Sandbox Code Playgroud)

java hibernate jboss-tools hibernate-tools

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