我有一个要求,如果一个logging插入一个数据库表,然后自动java进程需要执行。什么是最简单的方法来实现一个数据库监听器?
我很困惑如何重写不同于隐藏在Java中。 任何人都可以提供有关这些不同的更多细节? 我读了Java教程,但示例代码仍然让我感到困惑。 更清楚的是,我明白Overriding。 我的问题是,我没有看到,除了一个在实例层面,另一个在课堂层面,隐藏是不同的。 看一下Java教程代码: public class Animal { public static void testClassMethod() { System.out.println("Class" + " method in Animal."); } public void testInstanceMethod() { System.out.println("Instance " + " method in Animal."); } } 那么我们有一个子类猫: public class Cat extends Animal { public static void testClassMethod() { System.out.println("The class method" + " in Cat."); } […]
我正在尝试学习Javagenerics。 我不清楚什么时候你会用<T extends Foo>和什么时候用<T super Foo> 。 这些东西对T来说意味着什么? 假设我有<T extends Comparable>和<T super Comparable> ,这些都是什么意思? 我已经在sun.com上看了几篇教程,但是我还是输了。 有人可以用例子来说明吗? 谢谢!
我正在使用静态代码块来初始化我在registry中的一些控制器。 所以我的问题是,我可以保证,这个静态代码块将只会被绝对调用一次,当第一次加载类? 我知道我不能保证什么时候这个代码块将被调用,我猜它是什么时候Classloader第一次加载它。 我意识到我可以在静态代码块的类上同步,但我的猜测是这实际上是什么发生呢? 简单的代码示例是; class FooRegistry { static { //this code must only ever be called once addController(new FooControllerImpl()); } private static void addController(IFooController controller) { // … } } 或者我应该这样做; class FooRegistry { static { synchronized(FooRegistry.class) { addController(new FooControllerImpl()); } } private static void addController(IFooController controller) { // … } }
我被告知,我误解了final影响。 final关键字有什么作用? 这里是我所想,我知道的简短概述: Java final修饰符(又名聚合关系) 原始variables :只能设置一次。 (内存和性能增益) 对象variables :可能被修改,最终适用于对象引用。 字段 :只能设置一次。 方法 :不能被覆盖,隐藏。 类 :不能扩展。 垃圾收集 :将强制Java代垃圾收集标记扫一扫。 可以和不可以的 可以使克隆失败(这是好的和坏的) 可以使不可变的原语又称为const 可以使空白不变 – 初始化创buildaka只读 可以使对象浅不可变 可以使范围/可见性不可变 可以使方法调用开销更小(因为它不需要虚表) 可以使方法论点作为最终(即使你不是) 可以使对象线程安全(如果对象被定义为最终的,它不会使方法参数最终) 可以做模拟testing(不是你可以做任何事情 – 你可以说错误是有意的) 不能交朋友(可以和其他朋友一起rest,不可改变) 不能做可变以后更改为不可变(但可以像修复工厂模式) 不能使数组元素永远不可变,即不可变的 无法创build对象的新实例(这是好的和坏的) 无法使序列化工作 没有final ,但有包装+私人和枚举。
我有一个名为CurrentString的string,其forms类似于"Fruit: they taste good" 。 我想使用:作为分隔符来分割CurrentString 。 这样, "Fruit"这个词就会被分成自己的string,而"they taste good"将成为另一个string。 然后,我只想使用2个不同TextViews SetText()来显示该string。 什么是最好的方法来解决这个问题?
在Java中禁止inheritance的好理由是什么,例如通过使用单个私有的无参数构造函数来使用最终的类或类? 做出最终方法的好理由是什么?
ArrayList的通常构造函数是: ArrayList<?> list = new ArrayList<>(); 但是也有一个重载的构造函数,它的初始容量是一个参数: ArrayList<?> list = new ArrayList<>(20); 为什么创build一个具有初始容量的ArrayList是非常有用的,我们可以随意添加它呢?
你可以通过做一个ArrayList来设置初始大小 ArrayList<Integer> arr=new ArrayList<Integer>(10); 但是,你不能这样做 arr.add(5, 10); 因为它会导致出界exception。 如果您无法访问您分配的空间,则设置初始大小的用途是什么? add函数被定义为add(int index, Object element)所以我没有添加到索引10。
说我有一个非常简单的java对象,只有一些getXXX和setXXX属性。 该对象仅用于处理值,基本上是一个logging或一个types安全(和高性能)的地图。 我经常需要将该对象转换为键值对(string或types安全),或者将键值对转换为此对象。 除了reflection或手动编写代码来完成这个转换,最好的方法是什么? 一个示例可能是通过jms发送此对象,而不使用ObjectMessagetypes(或将传入消息转换为正确types的对象)。