如何以非递归方式重写Ackermann函数?

我有function public static int func(int M,int N){ if(M == 0 || N == 0) return M+N+1; return func(M-1, func(M, N-1)); } 如何以非递归方式重写它? 也许,它实现了一些算法吗?

Playframework JSR-303validation的“字段”没有相应的数据绑定访问器

当我将以下代码添加到我的项目中时 Form filledForm2 = userSignupForm.bindFromRequest(); 它已停止工作,显示一条错误消息,指出: Execution exception [IllegalStateException: JSR-303 validated property ‘Password’ does not have a corresponding accessor for data binding – check your DataBinder’s configuration (bean property versus direct field access)] 我的User类是这样的: class User{ String username; String Password; } 现在如何在java play框架中检查/修改DataBinder的配置?

spring mvc有response.write直接输出到浏览器吗?

我正在使用带有freetemplate的spring mvc。 在asp.net中,您可以使用Response.Write直接写入浏览器(“hello,world”); 你能在spring的mvc做这个吗?

如果已重新定义toString方法,如何打印对象的地址

我是Java的新手。 现在我正在研究equals和==以及重新定义equals和toString。 我想使用我已经重新定义的toString方法和从Object类inheritance的默认方法。 我没有使用那个超级修饰符来达到该方法。 这仅用于教育目的。 如果您要查看我的代码中的注释,我希望得到的更清楚。 你能帮帮我吗? 我的代码是: public class EqualTest{ public static void main(String[] args){ Employee alice1 = new Employee(“Alice Adams”, 75000, 1987, 12, 15); //System.out.super.println(alice1); Employee alice2 = alice1; //System.out.super.println(alice2); Employee alice3 = new Employee(“Alice Adams”, 75000, 1987, 12, 15); //System.out.super.println(alice3); System.out.println(“alice1==alice2: ” + (alice1==alice2)); System.out.println(“alice1 == alice3: ” + (alice1==alice3)); System.out.println(“alice1.equals(alice3): ” […]

是什么导致Tomcat 7中的NotSerializableException?

我的DAO实现在使用Tomcat7启动服务器时抛出了一个不可序列化的exception。 知道是什么原因引起的吗? 我的其他DAO都没有这样做。 这是class级: package com.project.dao; import java.util.List; import org.hibernate.SessionFactory; import org.springframework.orm.hibernate3.HibernateTemplate; import com.project.model.User; public class UserDAOImpl implements UserDAO { private HibernateTemplate hibernateTemplate; public void setSessionFactory(SessionFactory sessionFactory) { this.hibernateTemplate = new HibernateTemplate(sessionFactory); } @Override public void saveUser(User user) { hibernateTemplate.saveOrUpdate(user); } @Override @SuppressWarnings(“unchecked”) public List listUser() { return hibernateTemplate.find(“from User”); } @Override @SuppressWarnings(“unchecked”) public User […]

在Java中连接两个字符串的最快方法是什么?

在Java中连接两个字符串的最快方法是什么? 即 String ccyPair = ccy1 + ccy2; 我正在使用cyPair作为HashMap一个键,并且它在一个非常紧凑的循环中被调用来检索值。 当我描述然后这是瓶颈 java.lang.StringBuilder.append(StringBuilder.java:119) java.lang.StringBuilder.(StringBuilder.java:93)

Java硬件加速

我花了一些时间研究Java的硬件加速function,我仍然有点困惑,因为我没有直接在网上找到的网站,并清楚地回答了我的一些问题。 以下是我对Java硬件加速的问题: 1)在Eclipse版本3.6.0中,使用最新的Mac OS X Java更新(我认为1.6u10),默认情况下是否启用了硬件加速? 我读到了某个地方 someCanvas.getGraphicsConfiguration().getBufferCapabilities().isPageFlipping() 应该指示硬件加速是否已启用,并且我的程序在我的主Canvas实例上运行以进行绘制时报告​​为true。 如果我的硬件加速现在没有启用,或者默认情况下,我需要做些什么才能启用它? 2)我在这里和那里看过一些关于BufferedImage和VolatileImage之间差异的文章,主要是说VolatileImage是硬件加速图像并存储在VRAM中以便快速复制操作。 但是,我也发现了BufferedImage被称为硬件加速的一些实例。 BufferedImage硬件在我的环境中也加速了吗? 如果两种类型都是硬件加速的话,使用VolatileImage会有什么好处? 我的主要假设是,在两者都具有加速度的情况下具有VolatileImage的优点是VolatileImage能够检测其VRAM何时被转储。 但是如果BufferedImage现在也支持加速,它是否也没有同样的内置检测,只是隐藏了用户,以防内存被转储? 3)使用是否有任何好处 someGraphicsConfiguration.getCompatibleImage/getCompatibleVolatileImage() 而不是 ImageIO.read() 在一个教程中,我一直在阅读有关正确设置渲染窗口的一些一般概念( 教程 )它使用getCompatibleImage方法,我相信它返回一个BufferedImage,以获得快速绘制的“硬件加速”图像,这引起了质疑2关于它是否是硬件加速的。 4)这是较少的硬件加速,但它是我一直很好奇的事情:我需要订购哪些图形被绘制? 我知道当通过C / C ++使用OpenGL时,最好确保在需要一次绘制的所有位置绘制相同的图形,以减少当前纹理需要切换的次数。 从我所看到的情况来看,似乎Java会为我照顾这一点,并确保以最佳方式绘制事物,但同样,没有任何事情能够清楚地说出这样的事情。 5)什么AWT / Swing类支持硬件加速,应该使用哪些? 我目前正在使用一个扩展JFrame的类来创建一个窗口,并添加一个Canvas来创建一个BufferStrategy。 这是一个好的做法,还是有其他类型的方式我应该实现这个? 非常感谢您的时间,我希望我提供了明确的问题和足够的信息,以便您回答我的几个问题。

Hibernate SQL查询结果映射/转换为对象/类/ Bean

1 2:select(table。*)/(all column)没问题 String sql = “select t_student.* from t_student”; //String sql = “select t_student.id,t_student.name,… from t_student”; //select all column SQLQuery query = session.createSQLQuery(sql); query.addEntity(Student.class);//or query.addEntity(“alias”, Student.class); //query.list();[Student@…, Student@…, Student@…] query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); //or other transformer query.list(); //[{Student(or alias)=Student@…},{Student=Student@…}] 3:选择一些列(不是全部),是错误 String sql = “select t_student.id,t_student.name.t_student.sex from t_student”; SQLQuery query = session.createSQLQuery(sql); query.addEntity(Student.class); query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); query.list(); //Exception:invalid column/no column […]

使用Guava MapMaker / CacheBuilder处理空值

我尝试使用MapMaker / CacheBuilder创建缓存,但我不明白如何正确处理空值。 ConcurrentMap graphs = new MapMaker() .concurrencyLevel(4) .weakKeys() .maximumSize(10000) .expireAfterWrite(10, TimeUnit.MINUTES) .makeComputingMap( new Function() { public Graph apply(Key key) { return createExpensiveGraph(key); } }); 如果createExpensiveGraph方法返回null值,则抛出NullpointerException。 我不明白为什么ComputingConcurrentHashMap会抛出一个NPE而不是只返回一个空值。 如何妥善处理? 只是捕获NPE并返回null? 我错过了什么吗?

如何在java中将Blob转换为String和String转换为Blob

我正在尝试通过使用从BLOB数据类型获取字符串 Blob blob = rs.getBlob(cloumnName[i]); byte[] bdata = blob.getBytes(1, (int) blob.length()); String s = new String(bdata); 它工作正常,但是当我要将String转换为Blob并尝试插入数据库时​​,没有任何插入数据库。 我使用下面的代码将String转换为Blob: String value = (s); byte[] buff = value.getBytes(); Blob blob = new SerialBlob(buff); 任何人都可以帮我解决在Java中将Blob转换为String和String到Blob问题吗?