• 回答数

    5

  • 浏览数

    283

黎明前的静谧
首页 > 学术期刊 > java软件毕业论文

5个回答 默认排序
  • 默认排序
  • 按时间排序

邱shannon

已采纳

java程序站专门收集整理了《Java工程师成神之路(1)》问题和答案整理成册,分成系列文章分享给大家。基础篇01面向对象→ 什么是面向对象、面向过程?面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。面向对象的三大基本特征和五大基本原则?一、三大基本特征:封装、继承、多态1、封装:也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏2、继承:所谓继承是指可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展3、多态:所谓多态就是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用二、五大基本原则1、单一职责原则(SRP)是指一个类的功能要单一,不能包罗万象2、开放封闭原则(OCP)一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的3、里氏替换原则(LSP)子类应当可以替换父类并出现在父类能够出现的任何地方。继承的体现4、依赖倒置原则(DIP)具体依赖抽象,上层依赖下层。5、接口隔离原则(ISP)模块间要通过抽象接口隔离开,不通过具体的类关联,降低耦合度→ 平台无关性什么是平台无关性,Java是如何做到平台无关的?平台无关(跨平台): 一种语言在计算机上的运行不受平台的约束,一次编译到处运行。Java经过编译之后生成的.class 的字节码文件,运行平台上只要有JVM就能运行,不需要进行再次编译JVM 还支持哪些语言(Kotlin、Groovy、JRuby、Jython、Scala)→ 值传递值传递、引用传递java中只存在值传递,只存在值传递!!! 然而我们经常看到对于对象(数组,类,接口)的传递似乎有点像引用传递,可以改变对象中某个属性的值。但是不要被这个假象所蒙蔽,实际上这个传入函数的值是对象引用的拷贝,即传递的是引用的地址值,所以还是按值传递。为什么说 Java 中只有值传递?Java 语言的参数传递只有「按值传递」。当一个实例对象作为参数被传递到方法中时,参数的值就是该对象的引用的一个副本。指向同一个对象,对象的内容可以在被调用的方法内改变,但对象的引用(不是引用的副本) 是永远不会改变的。按值传递的精髓是:传递的是存储单元中的内容,而不是存储单元的引用!→ 封装、继承、多态继承多态方法重载与方法重写修饰符代码块final关键字代码块的执行顺序:静态代码块优先于构造代码块,构造代码块优先于构造方法。02 Java 基础知识→ 基本数据类型7 种基本数据类型:整型、浮点型、布尔型、字符型以及取值范围?什么是浮点型?什么是单精度和双精度?单精度浮点数(float)与双精度浮点数(double)的区别如下:(1)在内存中占有的字节数不同单精度浮点数在机内占4个字节双精度浮点数在机内占8个字节(2)有效数字位数不同单精度浮点数有效数字8位双精度浮点数有效数字16位(3)所能表示数的范围不同单精度浮点的表示范围:-3.40E+38 ~ +3.40E+38双精度浮点的表示范围:-1.79E+308 ~ +1.79E+308(4)在程序中处理速度不同一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快为什么不能用浮点型表示金额?金额计算不能用doube!必须用BigDecimal1.出现科学计数法2.计算金额不准确,丢失精度→ 自动拆装箱什么是包装类型、什么是基本类型?1、为什么存在基本类型:在Java中正常应该设置对象,然后通过new一个对象存储在堆中,再通过栈的引用来使用对象,但对于简单的小的变量,用new显的繁琐麻烦,所以产生了基本类型2、有了基本类型,为什么还会产生包装类型:(1)什么是包装类:包装类型相当于将基本类型包装起来,使其具有对象的性质,并且可以添加属性和方法,丰富了基本类型的操作。(2)包装类型具有哪些好处:符合Java面向对象编程特征使用集合Collection就一定要用包装类型需要往ArrayList,HashMap放东西,int和double是放不进去的3、二者相互转换(1)int转换integerint i=0ineger ii=new integer(i)(2)integer转intinteger ii=new interger(0)int i=ii.intValue();4、二者的区别(1)基本类型直接声明而包装类型需使用new关键字来在堆中分配内存空间(2)基本类型存储在栈中而包装类型存储在堆中通过引用(3)基本类型初始值,int为0,boolean为false。包装类型初始值为null(4)基本类型直接赋值使用就好,包装类型需要在集合如Collection、map时会使用什么是自动拆装箱?自动装箱: 就是将基本数据类型自动转换成对应的包装类。自动拆箱:就是将包装类自动转换成对应的基本数据类型。自动装箱都是通过包装类的valueOf()方法来实现的.自动拆箱都是通过包装类对象的xxxValue()来实现的。Integer 的缓存机制?当使用自动装箱的时候,也就是将基本数据类型传递给对象类的时候触发自动装箱。这个时候java虚拟机会创建一系列的整数并且缓存到一个数组中以便直接使用,这就是缓存策略→ String字符串的不可变性JDK 6 和 JDK 7 中 substring 的原理及区别?JDK6中,String是通过字符数组实现的,String类包含三个成员变量:char value[], int offset,int count。他们分别用来存储真正的字符数组,数组的第一个位置索引以及字符串中包含的字符个数。JDK6中的substring导致的问题如果字符串很长,但是只需substring切割很短的一段。这可能导致性能问题,因为只需要的是一小段字符序列,却引用了整个字符串(因为这个很长的字符数组一直被引用,而无法被回收,就可能导致内存泄露)。在JDK 6中,一般用以下方式来解决该问题,原理其实就是生成一个新的字符串并引用他。x = x.substring(x, y) + ""JDK 7 中的substring上述问题,在JDK7中得到解决。在jdk 7 中,substring方法会在堆内存中创建一个新的数组。//JDK 7public String(char value[], int offset, int count) {//check boundarythis.value = Arrays.copyOfRange(value, offset, offset + count);}public String substring(int beginIndex, int endIndex) {//check boundaryint subLen = endIndex - beginIndex;return new String(value, beginIndex, subLen);}replaceFirst、replaceAll、replace 区别?· replace(CharSequence target, CharSequence replacement) ,用replacement替换所有的target,两个参数都是字符串。· replaceAll(String regex, String replacement) ,用replacement替换所有的regex匹配项,regex很明显是个正则表达式,replacement是字符串。· replaceFirst(String regex, String replacement) ,基本和replaceAll相同,区别是只替换第一个匹配项。String s = "my.test.txt";System.out.println(s.replace(".", "#")); // replace将字符串中的. 都替换为 #System.out.println(s.replaceAll(".", "#")); // replaceAll 用到了正则表达式,其中. 是任意字符的意思,所以结果是字符串全部替换为#System.out.println(s.replaceFirst(".", "#")); // replaceFirst 用到了正则表达式, 其中. 是任意字符的意思,所以第一个字符被#号代替System.out.println(s.replaceFirst("\\.", "#")); // 正则表达式中双杠是原生字符串的意思,所以结果是字符串中第一个. 被#代替得到String 对“+”的重载?String 类底层是一个 final 修饰的 char 类型数组,意味着 String 类的对象是不可变的,所以 String 对象可以共享。String 类中的每一个看起来会修改 String 值的方法,实际上都是创建了一个全新的 String 对象,用来包含修改后的字符串内容,这也可以说明 String 对象具有只读的属性。String fruit = "Apple," + "Pear," + "Orange";编译器会创建一个 StringBuilder 对象,用来构造最终要生成的 String,并为每一个字符串调用一次 StringBuilder 中的 append() 方法,因此代码一共执行了三次 append() 方法。最后调用 toString 生成最终的结果,并保存为 fruit。字符串拼接的几种方式和区别?1.无论如何直接用“+”号连接字符串都是最慢的2.在拼接少数字符串(不超过4个)的时候,concat效率是最高的3.多个字符串拼接的时候,StringBuilder/StringBuffer的效率是碾压的4.在不需要考虑线程安全问题的时候,使用StringBuilder的效率比StringBuffer更高String.valueOf 和 Integer.toString 的区别?String.valueOf()可以应用到任何数据类型,且不会有异常报出。Integer.toString()表示先讲int转换成Integer型,然后再将Integer转换成String型。总的来说 String.valueOf()用的比较多(应用的数据类型无限制),但是基本上每个JAVA对象都会有一个toString方法。2个方法的运行结果还是一样的,只是原理(运行过程)不一样.switch 对 String 的支持?java中switch支持String,是利用String的hash值,本质上是switch-int结构。并且利用到了equals方法来防止hash冲突的问题。最后利用switch-byte结构,精确匹配。字符串池、常量池(运行时常量池、Class 常量池)、intern?1.全局常量池在每个VM中只有一份,存放的是字符串常量的引用值。2.class常量池是在编译的时候每个class都有的,在编译阶段,存放的是常量的符号引用。3.运行时常量池是在类加载完成之后,将每个class常量池中的符号引用值转存到运行时常量池中,也就是说,每个class都有一个运行时常量池,类在解析之后,将符号引用替换成直接引用,与全局常量池中的引用值保持一致。→ 熟悉 Java 中各种关键字transient、instanceof、final、static、volatile、synchronized、const 原理及用法transient:修饰变量,在实现Serializable接口的类中,可以避免持久化,但是如果实现的是Externalizable接口,那么手动序列化会无视 transient。instanceof:对象 instanceof 类,检查对象是否是这个类或者这个类的子类的对象,返回布尔值。volatile:轻量级的线程安全的实现,但是要注意用法,某些场合不适合用volatile,保证可见性,有序性synchronized:线程安全的修饰符,锁住对象的访问权限。final:final修饰类:该类不可继承final修饰方法:该方法不能被子类覆盖(但它不能修饰构造函数)final修饰字段属性:属性值第一次初始化后不能被修改使用final可以提高程序执行的效率,将一个方法设成final后编译器就可以把对那个方法的所有调用都置入“嵌入”调用里。static:static修饰成员函数则该函数不能使用this对象static不能修饰构造函数、函数参数、局部成员变量static修饰成员字段则当类被虚拟机加载时按照声明先后顺序对static成员字段进行初始化。static修饰语句块:当类被虚拟机加载时按照声明先后顺序初始化static成员字段和static语句块static所修饰的方法和字段只属于类,所有对象共享,java不能直接定义全局变量,是通过static来实现的。java中没有const,不能直接定义常量,是通过static final组合来实现的。专注java职场经验,技术分享,欢迎关注公众号:程序秘籍

264 评论

加勒B海盗

按面向过程写的话,需求不能有大的改动,要不然可能牵一发动全身,因为面向过程的耦合度太高了;也就是说需求要一开始就比较明确;既然用Java写项目,还是用面向对象好一些,毕竟Java在面向对象编程方面有优势;面向对象可读性较高,好修改和维护;

106 评论

星愿乐活

Java可以按照面向过程来实施项目,但是它本身是一门面向对象的语言,如果你是毕业论文的话,建议还是按照面向对象的方式来写,期间添加一些uml的图表体现,这样更容易拿到高分。

139 评论

candys0814

1. JAVA网络通信系统的研究与开发 2. 本地监听与远程端口扫描的设计与开发 3. 基于Misty1算法的加密软件(Java)的实现 4. 论文格式化系统——后台模块的设计与实现 5. Web音乐搜索软件的设计与实现 6. 基于J2EE酒店管理系统设计与实现 7. 局域网监听软件的设计与开发 8. 网上考试及评析系统的设计与实现 9. 基于J2EE的公交查询系统的设计与实现 10. 面向Internet上的CSCW的共享白板的设计与实现 11. 基于Java的两个通用安全模块的设计与实现 12. 基于J2ME平台的掌上网络商店——客户端的开发 13. 银行帐目管理系统 14. 某百货店POS积分管理系统--积分点更新生成以及通票回收处理 15. 基于j2me平台的掌上网络商店-服务器端开发 16. EIMS系统-OA子系统的设计与开发 17. SMART系统—系统功能管理模块设计与开发 18. J2ME手机游戏的开发-Beckham Goa 19. 手机游戏(堡垒)的设计与开发 20. 一个简单的即时通讯工具的设计与开发 21. 泡泡堂网络游戏的设计与实现 22. 五子棋手机网络对战游戏的设计与实现 23. 机主留言功能在“全时通”系统上的实现 24. 某店POS积分管理系统——积分失效与数据分析模块的实现 25. B/S结构下的邮件系统的设计与开发 26. 在线考试系统的设计与实现 27. 基于JAVA C/S远程监控系统软件的实现 28. Java多线程与线程安全实践——基于Http协议的断点续传 29. 高校学生工作管理系统的设计与开发 30. 基于Java的五子棋游戏的设计 31. 文件压缩与解压缩实践 32. WML信息查询与后端信息发布系统实现——WML信息查询设计 33. FTP客户端软件的设计与实现 34. 基于Java ME无线网络移动端的俄罗斯方块游戏的实现 35. Java论坛管理系统 36. 离散数学题库管理系统 37. 基于Java3D的网络三维技术的设计与实现 38. 基于Java的在线购物系统的设计与实现 39. J2ME贪吃蛇游戏的设计 40. 在线考试 41. 办公自动化系统 42. Java Applet研究与应用——综合测评系统 43. 打飞机游戏毕业设计

254 评论

超级飞侠包警长

你好, 计算机专业的毕设一般分为这两部分: 源码+论文

首先说选题, 毕设课题以javaweb居多, 框架可以选用ssm, ssh, 或者springboot, 可以选做一些管理系统, 下面是一些常见的命题

等等, 这些课题可以按照你自己的实力做, 如果技术好的化, 或者有一些成品, 可以做的复杂一些, 比如前端可以layui优化一下, 权限系统采用shiro来做等等

论文方面比较简单但是比较麻烦, 各种文库都有很多javaweb的论文,但是直接拷贝的化会过不了查重系统, 需要你自己认真的重构调整一下

304 评论

相关问答

  • 软件行业毕业论文

    以下是我个人写过的论文,格式应该就是这们写,给你只供模块的参考。至于你的具体内容该怎么写,你得多花的点心思,写论文看起来简单,其实并不是想像中的那样....努力

    candy小蔡 4人参与回答 2023-12-08
  • 软件毕业论文

    你们老师都不给模板的吗?上网找也都差不多,大概就是你说的这些

    香城宝地邑人 4人参与回答 2023-12-09
  • photoshop软件毕业论文

    建议:就写它的用途,还有怎么改变生活的吧!切忌切入点一定要小。

    美丽先生的店 2人参与回答 2023-12-05
  • 软件工程师论文软件开发毕业论文

    计算机病毒论文 计算机病毒是一个程序,一段可执行码。就像生物病毒一样,计算机病毒有独特的复制能力。计算机病毒可以很快地蔓延,又常常难以根除。它们能把自身附着在各

    是芬妮呀 4人参与回答 2023-12-11
  • java邮件毕业论文

    摘 要网络中的资源非常丰富,但是如何有效的搜索信息却是一件困难的事情。建立搜索引擎就是解决这个问题的最好方法。本论文首先详细介绍了基于英特网的搜索引擎的系统结

    贪吃女王Grief 5人参与回答 2023-12-12