我在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或是否有一些限制?
我正在玩三元运算符并注意到一些奇怪的东西.我的代码如下:
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的第二行.
题:
为什么结果是String编译器决定使用Object?
这是因为类型模糊吗?
如果是,那么为什么获取类名返回java.lang.String?
我阅读了 Java 10 文档java.io.Reader.transferTo(...),它说:
从此读取器读取所有字符,并按照读取顺序将字符写入给定写入器
transferTo中的 方法Reader将非常有用,因为目前将数据从读取器复制到写入器非常冗长。由于我们在现实生活中经常使用InputStream和OutputStream使用它们,是否有类似的方法?
我需要它来访问一个数据库(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) 我参考了下面的oracle jvm 文档
\n\nhttps://docs.oracle.com/javase/specs/jvms/se7/html/jvms-6.html#jvms-6.5.pop
\n\n\npop操作 弹出栈顶操作数的值
\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\npop2操作 弹出操作数栈顶部的一个或两个值
\n\n格式
\n\npop2 形式 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 …
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在哪里获得这些类的实例?
我正在跟踪此链接以生成休眠文件
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 ×7
java-10 ×2
jvm ×2
spring ×2
hibernate ×1
inputstream ×1
jboss-tools ×1
reader ×1
spring-boot ×1