Java进程内存使用情况(jcmd vs pmap)

我在一个docker容器内的Java 8上运行了一个java应用程序。 该过程启动Jetty 9服务器并部署Web应用程序。 传递以下JVM选项: -Xms768m -Xmx768m 。 最近我注意到这个过程耗费了大量的内存: $ ps aux 1 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND app 1 0.1 48.9 5268992 2989492 ? Ssl Sep23 4:47 java -server … $ pmap -x 1 Address Kbytes RSS Dirty Mode Mapping … total kB 5280504 2994384 2980776 $ jcmd […]

如何使用JSESSIONID手动加载Java会话?

我有一个处理多部分表单post的servlet。 post实际上是由嵌入在页面中的Flash文件上传组件制作的。 在某些浏览器中,Flash生成的POST不包含JSESSIONID,这使得我无法在post期间从会话中加载某些信息。 Flash上​​传组件在特殊表单字段中包含cookie和会话信息。 使用此表单字段,我实际上可以检索JSESSIONID值。 问题是,我不知道如何使用此JSESSIONID值手动加载该特定会话。 编辑 –基于ChssPly76的解决方案,我创建了以下HttpSessionListener实现: @Override public void sessionCreated(final HttpSessionEvent se) { final HttpSession session = se.getSession(); final ServletContext context = session.getServletContext(); context.setAttribute(session.getId(), session); } @Override public void sessionDestroyed(final HttpSessionEvent se) { final HttpSession session = se.getSession(); final ServletContext context = session.getServletContext(); context.removeAttribute(session.getId()); } 这会将所有会话添加到ServletContext,作为由其唯一ID映射的属性。 我可以在上下文中放置一个会话映射,但它似乎是多余的。 请发表有关此决定的任何想法。 接下来,我将以下方法添加到我的servlet以通过id解析会话: private HttpSession getSession(final String […]

在java中创建一个颠倒的三角形

我试图让我已经弥补的三角形朝下。 尝试了很多次,但我不知道该怎么做。 我所知道的代码是: public static void drawPyramide(int lines, char symbol, boolean startDown) { //TRIANGLE if(startDown) { //The triangle up side down should be here. } else { int c = 1; for (int i = 0; i < lines; i++) { for (int j = i; j < lines; j++) { System.out.print(" "); } for […]

解决Java中的NoClassDefFoundError问题

我有一个名为Main.java的Java程序,它位于以下目录中: /home/user/program/Main.java 当我尝试从’program’目录运行Main.java时,一切正常,我使用这一行: /home/user/program$ java Main 但是当我尝试从主目录运行Main.java时: /home$ java /home/user/program/Main 我明白了: Exception in thread “main” java.lang.NoClassDefFoundError: /home/user/program/Main Caused by: java.lang.ClassNotFoundException: .home.user.program.Main 这个错误的原因是什么?

菱形算法不起作用(从JS到JAVA重写代码)

我正在尝试从JS到Java重写代码。 代码是Diamond square算法。 来源是: http : //www.playfuljs.com/realistic-terrain-in-130-lines/ 我重写代码,但我的代码不工作…… 输出很糟糕。 我在Java中的代码是: public class MapGenerator { public static void main(String[] args) { MapGenerator mg = new MapGenerator(9); mg.generate(); mg.printMap(); } private int size, max; double[] map; int[][] matrix; public MapGenerator(int detail) { this.size = (int) Math.pow(2, detail) + 1; this.max = this.size – 1; this.map = new […]

Spring Generic Dao类名

我已经为我的spring / hibernate项目配置了一个自定义通用服务DAO – 这个想法是我可以从我的控制器中轻松地重用它。 它基本上是这样的: public class DefaultService { private Class e; public String className(Class e) { String clip = e.getName(); clip = clip.substring(clip.lastIndexOf(‘.’) + 1, clip.length()); return clip; } public List getAll(Integer status) { Session session = sessionFactory.getCurrentSession(); Query query = session.createQuery(“FROM ” + className(e) + ” WHERE status = ” + status); […]

从结果集填充表时更改列的jtable类型

我有工作人员从结果集中填写jtable,如下所示; public class WorkerFillTable extends SwingWorker { private DefaultTableModel modeltable; public WorkerFillTable(DefaultTableModel modeltable) { this.modeltable = modeltable; } @Override protected DefaultTableModel doInBackground() throws Exception { ResultSet rs; Statement stmt; String query = “select Name,ID,Status,IsActive from current_conf\n” + “order by Name,ID”; Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”); String connectionUrl = “jdbc:sqlserver://192.168.130.100;” + “databaseName=DBST;” + “user=” + “user1” + “;” + “password=” […]

使用ExecutorService控制任务执行顺序

我有一个将异步任务委托给线程池的进程。 我需要确保按顺序执行某些任务。 所以举个例子 任务按顺序到达 任务a1,b1,c1,d1,e1,a2,a3,b2,f1 任务可以按任何顺序执行,除非存在自然依赖性,因此必须按顺序处理a1,a2,a3,方法是分配到同一个线程或阻止这些,直到我知道之前的#任务完成为止。 目前它不使用Java Concurrency包,但我正在考虑改变以利用线程管理。 有没有人有类似的解决方案或如何实现这一目标的建议

SWIG Java保留从C ++反弹的对象的类信息

好的,我有一个关键词,我故意远离标签和标题。 这是“Android”,但那是因为即使该项目是在Android中,我也不认为我的问题与它有任何关系,我不想吓唬没有Android经验的人。 所以,swig的常见问题。 我在C ++类中有一个虚方法,我通过在类中添加directorfunction使它在Java中可以重载,并且它可以工作。 问题是该方法接收的多态参数也在java端扩展,并且在Java中的虚方法调用期间,该对象带有所有多态信息被剥离。 提出确切的情况; 我正在用C ++编写游戏引擎,我想在Java中愉快地使用它。 游戏引擎有一个GameObject类,它注册CollisionListener ,当碰撞引擎检测到碰撞事件时,它会调用所有已注册的collisionListener的collidedWith(GameObject & collidee)方法,并将它们与它们碰撞的对象一起传递。 class CollisionListener { public: virtual bool collidedWith(GameObject &){}; ~CollisionListener(){} // I know this needs to be virtual but let’s forget about that now }; 我正在使用以下接口文件Bridge.i将此类与GameObject类一起公开给java %module(directors=”1″) Bridge %feature(“director”) CollisionListener; %include “CollisionListener”; %feature(“director”) GameObject; %include “GameObject.h” 现在,当我从java中的CollisionListenerinheritance并重载collidedWith ,它会被一个java端GameObject对象调用。 例如,如果我从java端inheritanceGameObject类并定义一个Bullet类,当这个项目符号与另一个带有监听器的对象collidedWith ,在collidedWith方法调用中,我收到的只是一个裸GameObject (object instanceof Bullet) […]

在C#中,Java的枚举相当于什么?

在C#中,Java的枚举相当于什么?