java软件开发工程师与java软件架构师的区别如下:java软件开发工程师是从事软件开发相关工作的人员的统称。
主要职责有:RFID相关应用软件、信息管理类软件的设计、研发、维护、安装实施;数据库管理及应用开发;根据要求进行软件概要设计、详细设计、编码、单元测试工作及说明文档的编写。
而java软件架构师是软件行业中一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。
主导系统全局分析设计和实施、负责软件构架和关键技术决策的人员。
架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作。
必须对开发技术非常了解,并且需要有良好的组织管理能力。
内存溢出原因是由于没被引用的对象(垃圾)过多没有及时回收,造成的内存溢出。
如果出现这种现象可行代码排查:是否App中的类中和引用变量过多使用了Static修饰;在类中的属性中使用static修饰的最好只用基本类型或字符串;是否App中使用了大量的递归或无限递归(递归中用到了大量的建新的对象);是否App中使用了大量循环或死循环(循环中用到了大量的新建的对象);检查App中是否使用了向数据库查询所有记录的方法。
即一次性全部查询的方法,如果数据量超过10万,就可能会造成内存溢出。
所以在查询时应采用“分页查询”;检查是否有数组,List,Map中存放的是对象的引用而不是对象,因为这些引用会让对应的对象不能被释放。
会大量存储在内存中。
栈溢出有两种原因:方法递归没终止条件;方法中线程启动过多。