Apache Struts

想拿offer?请先过了下面这些Java技术问题.

扶醉桌前 提交于 2020-07-28 17:51:21
一、数据结构与算法基础 说一下几种常见的排序算法和分别的复杂度。 用Java写一个冒泡排序算法 描述一下链式存储结构。 如何遍历一棵二叉树? 倒排一个LinkedList。 用Java写一个递归遍历目录下面的所有文件。 二、Java基础 接口与抽象类的区别? Java中的异常有哪几类?分别怎么使用? 常用的集合类有哪些?比如List如何排序? ArrayList和LinkedList内部的实现大致是怎样的?他们之间的区别和优缺点? 内存溢出是怎么回事?请举一个例子? ==和equals的区别? hashCode方法的作用? NIO是什么?适用于何种场景? HashMap实现原理,如何保证HashMap的线程安全? JVM内存结构,为什么需要GC? NIO模型,select/epoll的区别,多路复用的原理 Java中一个字符占多少个字节,扩展再问int, long, double占多少字节 创建一个类的实例都有哪些办法? final/finally/finalize的区别? Session/Cookie的区别? String/StringBuffer/StringBuilder的区别,扩展再问他们的实现? Servlet的生命周期? 如何用Java分配一段连续的1G的内存空间?需要注意些什么? Java有自己的内存回收机制,但为什么还存在内存泄露的问题呢? 什么是java序列化

java书籍推荐[转]

心不动则不痛 提交于 2020-07-26 23:26:16
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。下面就按照学习顺序,给大家推荐下面这些JAVA书籍。 一、Java编程入门类,选择大于努力,入门太重要。 对于没有Java编程经验的程序员要入门,随便读什么入门书籍都一样,这个阶段需要你快速的掌握Java基础语法和基本用法,宗旨就是“囫囵吞枣不求甚解”,先对 Java熟悉起来再说。用很短的时间快速过一遍Java语法,连懵带猜多写写代码,要“知其然”。 1.《JAVA编程思想》在有了一定的Java编程经验之后,你需要“知其所以然”了。这个时候《Java编程思想》是一本让你知其所以然的好书,它 对于基本的面向对象知识有比较清楚的交待,对Java基本语法,基本类库有比较清楚的讲解,可以帮你打一个良好的Java编程基础。这本书的缺点是实在太 厚,也比较罗嗦,不适合现代人快节奏学习,因此看这本书要懂得取舍,不是每章每节都值得一看的,挑重点的深入看就可以了。推荐一个java群,名字是java从入门到精通,第一组是二二零,第二组是一四二,第三组是九零六,里面有大量视频资料,欢迎java爱好者加入学习。 2.《Agile Java》中文版,这本书一大特点是以单元测试和TDD来贯穿全书的,在教你Java各种重要的基础知识的 过程中,潜移默化的影响你的编程思维走向敏捷,走向TDD。另外这本书成书很新

上传大型视频文件到服务器,解决方案

落花浮王杯 提交于 2020-05-09 20:43:15
第一点:Java代码实现文件上传 FormFile file = manform.getFile(); String newfileName = null; String newpathname = null; String fileAddre = "/numUp"; try { InputStream stream = file.getInputStream();// 把文件读入 String filePath = request.getRealPath(fileAddre);//取系统当前路径 File file1 = new File(filePath);//添加了自动创建目录的功能 ((File)file1).mkdir(); newfileName = System.currentTimeMillis() + file.getFileName().substring( file.getFileName().lastIndexOf('.')); ByteArrayOutputStream baos = new ByteArrayOutputStream(); OutputStream bos = new FileOutputStream(filePath + "/" + newfileName); newpathname = filePath + "/" +

Java面试之项目面试问题——不看面试会后悔的

我的梦境 提交于 2020-05-09 15:45:16
1.请描述下你做的项目: XXX系统是什么什么,主要目的是XXX,整个系统包含了哪些功能模块,然后说包含了哪些模块,自己做了哪些模块。 2.结合项目谈谈你对MVC的理解 MVC是model-view-controler的简称。也就是模型-视图-控制器。mvc是一种设计模式,他强制性的把应用程序的输入、处理和输出分开。mvc中的模型、视图、控制器分别担任着不同的任务。 视图:视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并接受用户的输入。视图不进行任何业务逻辑处理。 模型:模型表示业务数据和业务处理。相当于javaBean。一个模型能为多个视图提供数据。这提高了应用程序的重用性。 控制器:当用户单击web页面中的提交按钮时,控制器接收请求并调用相应的模型去处理请求。然后根据处理的结果调用相应的视图来显示处理的结构。 MVC的处理过程:首先控制器接收用户的请求,调用相应的模型来进行业务处理,并返回数据给控制器。控制器调用相应的视图来显示处理的结构。并通过视图呈现给用户。如在项目中要对应MVC的话;View对应项目中的jsp,controler对应action,model对应service+dao层的业务逻辑和持久层的操作。 3.项目中为什么要使用ssh(三大框架的优点) 1.使用struts是因为struts是基于mvc模式的,很好的将应用程序进行了分层

简单介绍几种Java后台开发常用框架组合

好久不见. 提交于 2020-05-09 12:13:32
01 前言 Java框架一直以来都是面试必备的知识点,而掌握Java框架,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能对当前正在开发中的系统有整体的认知,从而更好的熟悉和学习技术,这篇文章胖达就打算给大家介绍几款现阶段流行的框架组合,不管是在传统企业开发还是在互联网开发领域,这几种框架应该都是比较常用的。 02 三层架构 说到框架首先需要明确的是,在Web开发领域一般会将架构分为三个部分:表示层、持久层、业务层,之所以将整体架构分为三个层面,主要目的是让整个系统更具有条理性,通过分配任务的方式进行系统的解耦,让每一层只关心自己内部的事情,只知道下层的存在,不知道上层的存在。达到局部改变而不影响全局的目的,就比如餐馆中有服务员、厨师、收银员一样,各司其职,让系统有条不紊的运行下去。三层架构如下图所示(图中的数据访问层就是文中的持久层): 下面就简单介绍一下三层架构: 1.表示层 表示层其实就是用户能够看到的界面显示层,但是它的职责并不仅仅是显示界面那么简单,而是需要完成三件事情: 从界面中取得数据跟后台服务器交互 跟后台交互后进行数据绑定 将绑定的数据呈现在页面中 一般来说,这一层的设计会采用MVC的模式,M称为模型也就是实体类,用于数据的封装和数据的传输;V为视图也就是页面组件,用于数据的展示;C为控制也就是流程事件,用于流程的控制。 2.业务层

Spring 框架介绍 [Spring 优点][Spring 应用领域][体系结构][目录结构][基础 jar 包]

ぃ、小莉子 提交于 2020-05-09 10:42:22
您的“关注”和“点赞”,是信任,是认可,是支持,是动力...... 如意见相佐,可留言。 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新。 目录 1 Spring 框架概述 2 Spring 的优点 3 Spring 的应用领域 4 Spring 体系结构 4.1 Spring 体系结构概述 4.2 各个模块介绍 (1)Data Access/Integration(数据访问/集成)层 (2)Web 层 (3)Core Container(核心容器)层 (4)其他模块 5 Spring 目录结构 5.1 Spring 框架下载 5.2 Spring 框架目录结构介绍 6 Spring 框架的四个基础 JAR 包 7 使用 Spring 框架时,必须导入的 JAR 包 8 文章其他地址 8.1 微信公众号:码农阿杰 8.2 CSDN 博客 9 参考资料地址 9.1 spring 9.2 Artifact Repository Browser 9.3 Apache Commons 1 Spring 框架概述 可以看一下官网给出的介绍,如下图所示: Spring 是一个主流的 Java Web 开发框架,该框架是一个轻量级的应用框架,具有很高的凝聚力和吸引力。Spring使每个人都可以更快,更轻松,更安全地进行Java编程。Spring对速度

java.lang.IllegalStateException: getOutputStream() has already been called for this response解决方案

|▌冷眼眸甩不掉的悲伤 提交于 2020-05-09 10:16:13
前言:jsp抛出异常,虽不影响正常运行,但是感觉不舒服。 解决方案: 1、Jsp解决办法 ,在程序的最后添加: out.clear(); out = pageContext.pushBody(); 2、Struts2解决办法 直接让action中的处理方法返回null。 2、SpringMvc解决办法 让controller层的该方法返回null。 参考链接: https://www.cnblogs.com/linjiqin/archive/2013/06/21/3148091.html 最后:感谢该作者帮助我解决了问题。谢谢! 来源: oschina 链接: https://my.oschina.net/u/4412419/blog/4271531

log4j.properties错误及配置详解

与世无争的帅哥 提交于 2020-05-08 07:31:13
当在Eclipse上运行MapReduce程序遇到以上问题时,请检查项目中是否有log4j.properties配置文件,或者配置文件是否正确。 刚接触Hadoop的时候不太了解log4j.properties配置的含义和作用是什么,后来意识到了其重要性,但网上的内容大多太杂太单一,因此想整理一份出来供大家参考。 ################################################################################ #①配置根Logger: #log4j.rootLogger = [level],appenderName,appenderName2,... #level是日志记录的优先级,分OFF,TRACE,DEBUG(DeBug信息),INFO(普通信息),WARN(警告),ERROR(错误),FATAL(罕见严重的错误),ALL #Log4j建议只使用四个级别,优先级从低到高分别是DEBUG,INFO,WARN,ERROR #通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关 #比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来 #appenderName就是指定日志信息输出到哪个地方。可同时指定多个输出目的 #如果配置OFF则不打出任何信息

给java编程新手推荐的java学习十个基本点

淺唱寂寞╮ 提交于 2020-05-06 20:17:33
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 给你java学习路线:html-css-js-jq-javase-数据库-jsp-servlet-Struts2-hibernate-mybatis-spring4-springmvc-ssh-ssm 在这里小编给零基础的小白罗列下java的基本语法,有基础的大神可以略过。 基本语法: 一、编写Java程序时,应注意以下几点: 大小写敏感 :Java是大小写敏感的,这就意味着标识符Hello与hello是不同的。 类名 :对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 。 方法名 :所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。 源文件名 :源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记Java是大小写敏感的),文件名的后缀为.java。(如果文件名和类名不相同则会导致编译错误)。 主方法入口 :所有的Java 程序由 public static void main(String []args)

老码农给新秀们的忠告

旧街凉风 提交于 2020-05-06 10:11:22
0. 把语言学学通 1. 谨记java框架四要素: 注解、反射、代理、设计模式,搞懂了这四项,spring、mybatis、hibernate、struts等就没什么秘密了,怎么“组装拆解”四要素就看个人造化了 2. 不要学技术框架,会过时成为历史,前车之鉴,不要单学某种编程语言(比如java,golang,python,nodejs等),你真正要学习的是: 操作系统(tcp/ip,io模型,网络编程,多线程,rpc),设计模式解决方案 3. 。。。。。。 附图两张: 来源: oschina 链接: https://my.oschina.net/u/154866/blog/4267848