java_javascript - CSDN
java 订阅
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 [1]  。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 [2]  。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 [3]  。 展开全文
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 [1]  。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 [2]  。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 [3]  。
信息
外文名
Java
推出时间
1995年5月
现公司
Oracle
Java发展历程
20世纪90年代,硬件领域出现了单片式计算机系统,这种价格低廉的系统一出现就立即引起了自动控制领域人员的注意,因为使用它可以大幅度提升消费类电子产品(如电视机顶盒、面包烤箱、移动电话等)的智能化程度。Sun公司为了抢占市场先机,在1991年成立了一个称为Green的项目小组,帕特里克、詹姆斯·高斯林、麦克·舍林丹和其他几个工程师一起组成的工作小组在加利福尼亚州门洛帕克市沙丘路的一个小工作室里面研究开发新技术,专攻计算机在家电产品上的嵌入式应用。由于C++所具有的优势,该项目组的研究人员首先考虑采用C++来编写程序。但对于硬件资源极其匮乏的单片式系统来说,C++程序过于复杂和庞大。另外由于消费电子产品所采用的嵌入式处理器芯片的种类繁杂,如何让编写的程序跨平台运行也是个难题。为了解决困难,他们首先着眼于语言的开发,假设了一种结构简单、符合嵌入式应用需要的硬件平台体系结构并为其制定了相应的规范,其中就定义了这种硬件平台的二进制机器码指令系统(即后来成为“字节码”的指令系统),以待语言开发成功后,能有半导体芯片生产商开发和生产这种硬件平台。对于新语言的设计,Sun公司研发人员并没有开发一种全新的语言,而是根据嵌入式软件的要求,对C++进行了改造,去除了留在C++的一些不太实用及影响安全的成分,并结合嵌入式系统的实时性要求,开发了一种称为Oak的面向对象语言。由于在开发Oak语言时,尚且不存在运行字节码的硬件平台,所以为了在开发时可以对这种语言进行实验研究,他们就在已有的硬件和软件平台基础上,按照自己所指定的规范,用软件建设了一个运行平台,整个系统除了比C++更加简单之外,没有什么大的区别。1992年的夏天,当Oak语言开发成功后,研究者们向硬件生产商进行演示了Green操作系统、Oak的程序设计语言、类库和其硬件,以说服他们使用Oak语言生产硬件芯片,但是,硬件生产商并未对此产生极大的热情。因为他们认为,在所有人对Oak语言还一无所知的情况下,就生产硬件产品的风险实在太大了,所以Oak语言也就因为缺乏硬件的支持而无法进入市场,从而被搁置了下来。1994年6、7月间,在经历了一场历时三天的讨论之后,团队决定再一次改变了努力的目标,这次他们决定将该技术应用于万维网。他们认为随着Mosaic浏览器的到来,因特网正在向同样的高度互动的远景演变,而这一远景正是他们在有线电视网中看到的。作为原型,帕特里克·诺顿写了一个小型万维网浏览器WebRunner。 [4]  1995年,互联网的蓬勃发展给了Oak机会。业界为了使死板、单调的静态网页能够“灵活”起来,急需一种软件技术来开发一种程序,这种程序可以通过网络传播并且能够跨平台运行。于是,世界各大IT企业为此纷纷投入了大量的人力、物力和财力。这个时候,Sun公司想起了那个被搁置起来很久的Oak,并且重新审视了那个用软件编写的试验平台,由于它是按照嵌入式系统硬件平台体系结构进行编写的,所以非常小,特别适用于网络上的传输系统,而Oak也是一种精简的语言,程序非常小,适合在网络上传输。Sun公司首先推出了可以嵌入网页并且可以随同网页在网络上传输的Applet(Applet是一种将小程序嵌入到网页中进行执行的技术),并将Oak更名为Java(在申请注册商标时,发现Oak已经被人使用了,再想了一系列名字之后,最终,使用了提议者在喝一杯Java咖啡时无意提到的Java词语)。5月23日,Sun公司在Sun world会议上正式发布Java和HotJava浏览器。IBM、Apple、DEC、Adobe、HP、Oracle、Netscape和微软等各大公司都纷纷停止了自己的相关开发项目,竞相购买了Java使用许可证,并为自己的产品开发了相应的Java平台。 [5-6]  1996年1月,Sun公司发布了Java的第一个开发工具包(JDK 1.0),这是Java发展历程中的重要里程碑,标志着Java成为一种独立的开发工具。9月,约8.3万个网页应用了Java技术来制作。10月,Sun公司发布了Java平台的第一个即时(JIT)编译器。1997年2月,JDK 1.1面世,在随后的3周时间里,达到了22万次的下载量。4月2日,Java One会议召开,参会者逾一万人,创当时全球同类会议规模之纪录。9月,Java Developer Connection社区成员超过10万。1998年12月8日,第二代Java平台的企业版J2EE发布。1999年6月,Sun公司发布了第二代Java平台(简称为Java2)的3个版本:J2ME(Java2 Micro Edition,Java2平台的微型版),应用于移动、无线及有限资源的环境;J2SE(Java 2 Standard Edition,Java 2平台的标准版),应用于桌面环境;J2EE(Java 2Enterprise Edition,Java 2平台的企业版),应用于基于Java的应用服务器。Java 2平台的发布,是Java发展过程中最重要的一个里程碑,标志着Java的应用开始普及。1999年4月27日,HotSpot虚拟机发布。HotSpot虚拟机发布时是作为JDK 1.2的附加程序提供的,后来它成为了JDK 1.3及之后所有版本的Sun JDK的默认虚拟机 [7]  。2000年5月,JDK1.3、JDK1.4和J2SE1.3相继发 布,几周后其获得了Apple公司Mac OS X的工业标准的支持。2001年9月24日,J2EE1.3发布。2002年2月26日,J2SE1.4发布。自此Java的计算能力有了大幅提升,与J2SE1.3相比,其多了近62%的类和接口。在这些新特性当中,还提供了广泛的XML支持、安全套接字(Socket)支持(通过SSL与TLS协议)、全新的I/OAPI、正则表达式、日志与断言。2004年9月30日,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE 1.5更名为Java SE 5.0(内部版本号1.5.0),代号为“Tiger”,Tiger包含了从1996年发布1.0版本以来的最重大的更新,其中包括泛型支持、基本类型的自动装箱、改进的循环、枚举类型、格式化I/O及可变参数。2005年6月,在Java One大会上,Sun公司发布了Java SE 6。此时,Java的各种版本已经更名,已取消其中的数字2,如J2EE更名为JavaEE,J2SE更名为JavaSE,J2ME更名为JavaME。 [8]  2006年11月13日,Java技术的发明者Sun公司宣布,将Java技术作为免费软件对外发布。Sun公司正式发布的有关Java平台标准版的第一批源代码,以及Java迷你版的可执行源代码。从2007年3月起,全世界所有的开发人员均可对Java源代码进行修改 [9]  。2009年,甲骨文公司宣布收购Sun [10]  。2010年,Java编程语言的共同创始人之一詹姆斯·高斯林从Oracle公司辞职。2011年,甲骨文公司举行了全球性的活动,以庆祝Java7的推出,随后Java7正式发布。2014年,甲骨文公司发布了Java8正式版 [11]  。
收起全文
  • Java面试Offer直通车

    万人学习 2020-07-21 20:25:45
    Java面试宝典】 1、68讲视频课,500道大厂Java常见面试题+100个Java面试技巧与答题公式+10万字核心知识解析+授课老师1对1面试指导+无限次回放 2、这门课程基于胡书敏老师8年Java面试经验,调研近百家互联网公司...
  • Java基础与实践

    千人学习 2019-11-25 20:43:14
    本课程是一套全面讲解Java语言程序设计的开发类课程,由浅入深地介绍Java基础内容,主要包括基本类型及运算符、控制执行流程、字符串、面向对象、集合与数组、文件及流、异常、多线程等完整的Java知识体系。
  • Java学习指南(Java入门与进阶)

    万人学习 2019-11-19 17:43:51
    这是Java学习指南系列课程的第1篇,介绍Java语言的入门语法,引领希望学习Java语言编程的初学者进入Java大门。 本课程不需要其他语言作为基础,可以直接学习。 课程从Java开发平台的下载和安装开始,从...
  • java语言从入门到精通2016+项目实训

    万人学习 2020-03-03 10:45:06
    掌握jdk的安装与配置,面向对象编程的基本思想;掌握条件语句,循环语句,数组,类的定义,继承与多态,接口,抽象类,内部类,异常处理,重载与重写;awt,swing图形界面编程,数据库编程,...能达到精通JAVA语言的目的
  • Java学习的正确打开方式

    万次阅读 多人点赞 2020-01-08 21:56:48
    在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是...

    在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。

    何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。

    一、Java基础

    1、Java基础教学视频

    Java零基础教程视频(适合Java 0基础,Java初学入门)【推荐】

    JavaSE进阶入门项目实战视频教程_动力节点【推荐】

    毕向东Java基础视频教程25天【相对老旧,但也是金典啊!】

    说句实在的,博主当年大一下学期就是看的毕老师Java基础25天的视频,可谓金典啊!现在看来算是比较老旧了,可谓画质感人,若不是老毕的风趣,博主有种怎会坚持看完说句实在的,主要是当时没有学习资源才莫得办法,相比之下其余二者都是比较新颖的视频教程了,都是近一两年的没有质量博主也不会推荐鸭,对吧这个时候就会有童鞋要说了,怎么都是bilibili上的鸭?博主认为B站可谓是最大的学习网站了最重要的是免费免费免费!!!是的!加油学吧!上天是公平的,只要不辜负时间,时间自然不会辜负你。

    2、Java基础博客文章目录

    这些是博主近半个月重新总结的一些javase基础方面的博客,当然,学习总结!学习后才有的总结!建议哪里不懂点哪里进行参考

    解惑真小白的苦恼 | 类的对象,对象引用,对象实例,引用变量

    深入理解static关键字

    深入理解抽象类与接口

    【java基础之继承】java继承从“我爸是李刚”讲起

    【java基础之多态】理解多态的向上向下转型从“妈妈我想吃烤山药”讲起

    【java基础之代码块】Static静态代码块以及各代码块之间的执行顺序

    【java基础之异常】死了都要try,不淋漓尽致地catch我不痛快!

    【java基础之匿名内部类】程序员你真的理解匿名内部类吗?

    【java基础之tostring】为什么重写toString()方法?

    【java基础之泛型】泛型

    【java基础之反射】程序员你真的理解反射机制吗?

    java中的transient关键字详解

    史上最骚最全最详细的IO流教程,没有之一!

    【java基础之测试】序员你确定这十个题你都会吗?

    java抽象类(abstract)与接口(Interface)

    java面试官:兄弟简单谈谈Static、final、Static final各种用法吧

    java中的重载与重写

    Java静态static详解

    Java中equals与“==”的区别详解

    java基础之 “==”和“ equals”以及instanceof的区别

    Object类、Date类、System类、StringBuilder类、包装类

    什么是浮点型?什么是单精度浮点数(float)以及双精度浮点数(double)?

    java数组定义、使用、以及数组内存分析详解

    Collection集合以及Iterator迭代器实现原理

    List、Set集合系列之剖析HashSet存储原理(HashMap底层)

    Collection和Collections之间的使用与区别(顺带讲解Comparable与Comparator区别)

    Java中的多线程你只要看这一篇就够了

    当然,于此同时学习的过程光是看这些博客文章是不够的不太系统,不太完整,自黑++i,为了各位能够系统性学习,下面我贴出一份300页的Java基础教程笔记,可适当掺杂阅读。啥?300页?我靠,博主牛皮,博主赖斯,博主我要嫁给你!!!哎哎哎…博主我不禁夸不禁夸害羞 当然博主没有这个耐心整理写作300页笔记,还得感谢我的老师吧这是博主的老师整理的哈哈 唉哎哎…别打…别打…别打脸…我靠,咋还有扔臭鸡蛋的
    300页的Java基础教程链接:https://pan.baidu.com/s/1awgcwhF_SwMetLYcw-7gpg&shfl=sharepset
    提取码:xfn3

    以为就完了吗?就能入门了吗???

    就举个例子从这些List, ArrayList, Set ,HashSet, Map ,HashSet 等等java基础的集合框架你都真的掌握了咩?啥?都学过了?那你能够写一个最简单的ArrayList代码实现吗?就从自己创建一个类开始,然后加方法去实现…对于Java集合框架, 不但要学会用, 还会尝试着去实现一遍!!!一定要多折腾,你才会创造出自己的东西,以后你才能出众

    3、Java基础书籍

    放心,博主深怕各位同学学的不够深不够好,所以博主准备了一打书籍给你。包括java编程思想、java核心技术卷一、二,慢慢啃吧…

    链接:https://pan.baidu.com/s/1oeQxwcN6x1r1lUVml0PeLQ&shfl=sharepset 提取码:st3f

    链接:https://pan.baidu.com/s/19Afs4hbMqZkgxZts9vjyzA&shfl=sharepset 提取码:8ep6

    二、关于JavaWeb基础

    来到Java EE了,博主不得不比比几句了, Java 不就是写服务器端的Web应用的吗?那就自己写个Web程序喽, 可以考虑做一个Web版项目, 用最基础的技术Servlet/jsp/jdbc 。然后自己写个简单mvc框架, 在自己的Web 程序中用起来, 这叫吃自己的狗粮,之后再研究框架 , 自己写个简单的OR mapping框架, 再吃一次自己的狗粮。最后读一下经典的书籍《J2EE development without EJB》 , 是spring 的作者Rod Johnson写的, 它颠覆了大家对于重量级EJB的认识, 开启了新的时代。有了这本书的铺垫, 自己写个简化的依赖注入也不是难事, 写好后还是在自己的Web程序中用起来, 最后一次吃自己的狗粮。

    唉唉唉…放开我…博主还能再哔哔几句…

    JavaWeb基础不牢固,学框架只会事倍功半!所以学servlet之前请远离框架…

    1、JavaWeb基础教程视频

    JavaWeb视频教程(JSP/Servlet/上传/下载/分页/MVC/三层架构/Ajax)

    黑马JavaWeb入门到精通(idea版)

    尚硅谷Java视频_JavaWEB基础视频教程

    同样的那句话:上天是公平的,只要不辜负时间,时间自然不会辜负你。

    2、关于JavaWeb博客文章

    我整理的比较少,比较乱,时间比较有限,写的不好,将就这看吧,选择性观看

    JavaWeb专栏

    三、关于数据库

    肯定要学一个啊,最起码MySQL或者Oracle要会,总不能SQL语句也敲不出吧…

    1、关系型数据库教学视频

    MySQL 基础+高级篇- 数据库 -sql -尚硅谷

    SQL数据库

    一天学会 MySQL 数据库

    Oracle从入门到精通教程(全套)_数据库实战精讲_动力节点

    2、非关系性数据库Redis视频

    非关系性数据库Redis了解一下?这个Redis非常重要,博主不多哔哔,怕各位嫌我比比叨叨然后跑到现实中来扎我QnQ,一句话,埋头学吧…

    千锋微服务2019最新Redis教程[千锋南京]

    2019最新Redis实战教程全套学习视频

    四、关于JDK新特性

    虽然现在jdk12、13的世道了,可现实却是jdk8还是新特性哈哈哈哈…哈哈…哈(原谅我差点笑嗝屁)

    但是必须要明白一点的是用的比较多的还是JDK8!因此JDK8最好要去了解~

    黑马IDEA版本2018Java教学视频—JDK8新特性

    Java 8/9/11 新特性视频教程全集(65P)| 15 小时从入门到精通

    五、关于并发编程

    并发编程其实接触的并不多,但是尤为重要,首当其冲的体现在面试上!现在由于学习软件的人越来越多,特别是Java语言这个行业,而且每年大学生都在毕业,不是我说的浮夸,就连土木工程的大学生都可能转IT这一行,IT行业工资高现在已经是妇孺皆知了,稍微毕业后加入某某培训机构半年,总之学IT的人只会越来越多,随便在大街上拉一个头发茂盛的大叔都可能就是搞软件的,现在有一股妖风,不管啥公司都慢慢像阿里这样的大公司靠近,面试不问点jvm、并发、分布式都不好意思,面试通过之后你的岗位可能仅仅是CURD,老是觉得问问这些显得逼格高点,不管处于什么原因很多公司的确都是这样的!

    这篇文章就是要让你入门java多线程【多线程入门】

    Java并发编程原理与实战

    六、关于NIO

    如果有时间有精力有耐心NIO也是不可或缺的一门知识!急着就业的朋友可以先学框架只后再尽量回头学,当然也只是建议!

    尚硅谷Java视频_NIO 视频教程

    七、关于ssm框架

    ssh建议就不要学了,呸,不能这么说,就是能不学就不学吧,用到再学吧!【只是建议】,总之多学一点也没坏事,看个人吧!反正博主是直接学ssm框架。。。

    1、spring框架视频

    传智spring框架

    Java进阶教程2018年spring框架深入浅出

    2、Mybatis 框架视频

    Mybatis 【黑马】 idea版本

    MyBatis视频教程

    3、SpringMVC框架视频

    【极客学院】一天学会SpringMVC框架

    4、SSM框架博客文章

    4.1、spring框架

    Spring框架学习总结(上)

    Spring框架AOP学习总结(下)

    谈谈Spring核心IOC和AOP

    Spring加载properties文件的两种方式

    4.2、Mybatis框架

    什么是Mybatis,为什么要学习Mybatis,mybatis与hibernate区别

    零基础Mybatis入门程序编写、测试

    MyBatis中SqlMapConfig.xml文件中重点配置:properties属性、typeAliases别名、mappers映射

    MyBatis开发Dao的原始Dao开发和Mapper动态代理开发

    Mybatis中#{}与${}的区别

    Mybatis分页插件PageHelper的学习与使用

    Mybatis整合spring详细教程(带思路)

    4.3、SpringMVC框架

    走进SpringMVC世界,从SpringMVC入门到SpringMVC架构

    手把手教你优雅的编写第一个SpringMVC程序

    SpringMVC参数绑定学习总结【前后端数据参数传递】

    【解决】SpringMVC前端到后端400错误

    SpringMVC常见面试题总结(超详细回答)

    4.5、SSM框架整合文章

    当然以上框架文章并不太全,凑合着看吧,尽量以后更新…当然了以上框架企业都不会单个单个的用而是三个框架整合在一起使用,下面这篇文章可就要我的dog命了,加上测试花了整整N个多小时写出来的…

    IDEA优雅整合Maven+SSM框架(详细思路+附带源码)

    八、关于数据结构与算法

    可能你不去了解这玩意,你可能永远用不上这玩意,当你用的上瘾了,在以后的开发中,你会被它的魅力所折服的!强烈建议学习!!!,博主也是自掏腰包在极客专栏上买的这个专栏PDF,顺道小结写出博客,也算是一种小成绩吧!

    1、数据结构与算法视频

    (严蔚敏)数据结构视频教程(C语言版48集)

    上古程序员严蔚敏老师了解一下?咳咳当然也有java版的了,如下

    数据结构与算法基础-java版

    尚硅谷图解Java数据结构和算法

    2、数据结构与算法博客文章

    数据结构与算法分析有多重要?

    完全透析数据结构与算法

    时间空间复杂度分析:如何分析、统计算法的执行效率和资源消耗

    如何教会女友递归算法?

    【数据结构01】浅谈数组

    【数据结构02】栈与队列

    【数据结构03】浅谈链表

    【算法04】树与二叉树(递归思想遍历)

    算法动图+原理代码轻松透析八大经典算法

    当然,依旧还在学习中…尽量抽空持续更新

    3、数据结构与算法书籍

    还有附带一本数据结构与算法书籍,够你折腾了…

    链接:https://pan.baidu.com/s/1c1BW4iHdYPCd1nbRW1kUSQ&shfl=sharepset 提取码:jcdw

    九、关于开发工具idea

    java开发工具必须要最好的鸭,强烈建议直接上手idea,如果你非要用eclipse,咋也不敢问啊…

    博主也有个idea专栏,只是写的不多而已,选择性观看吧,建议看视频,讲的绝对比博主我说的好…

    IDEA专栏

    尚硅谷Java视频教程_IDEA视频教程

    十、关于项目管理工具Maven、Git、SVN、Gradle…

    确实,这些肯定要学,不然就out了…

    Maven基础篇(IDEA版)

    尚硅谷Java视频教程_Maven视频

    【教程】学会Git玩转Github【全】

    尚硅谷_Git&GitHub视频

    黑马程序员SVN视频教程

    黑马程序员精品教程|Java进阶教程之Gradle入门到精通

    十一、关于计算机网络原理

    世界上最遥远的就是网络…呀这里断网了,请各位往下接着看暂时还没写这方面的博客,不过还是挺重要的一门

    韩老师讲高校《计算机网络原理》

    韩老师就不多说了,绝对金典…

    十二、关于设计模式

    这个太重要了,不过没有实际开发经验是学不好这一门课程的,所以它分几个阶段学习,并不可能一蹴而就的,如果你听说XXX花了几个月的时间,耗死XXX个脑细胞,专研设计模式这一门,最后他成仙了,看啥都能运用设计模式来解决…你就扯犊子吧…

    1、设计模式博客文章

    Java 大黑话讲解设计模式 – UML类图

    【设计模式】单例模式的八种写法分析

    待续…

    尽量抽空写…

    2、设计模式视频

    尚硅谷图解Java设计模式韩顺平老师2019力作

    23个设计模式

    十三、关于中间件Shiro、Lucene、Solr…

    1、啥是中间件?

    啥是中间件?这个问题对博主而言就跟啥是佩奇这问题是同一层次的,小猪…红色的… 咳咳,扯远了

    其实吧,对于中间件这个概念并没有特定的概念,大致的概念为非业务的技术类组件,是操作系统之上和业务逻辑之下的中间层也都可以称之为中间件,或者说是主要用于解耦底层逻辑和业务应用的组件,或者是一些可复用的后台组件。这些概念倒是麻溜溜滴…似乎有点道理但又没完全讲清楚这个概念,你说气人不气人?

    言而总之,总而言之,中间件其实也有两个层面不同理解:
    1、狭义上讲中间件如常见的远程服务框架、消息队列、缓存等;
    2、广义上讲中间件是操作系统之上业务逻辑之下的所有可复用的后台组件。

    2、Shiro

    尚硅谷Shiro视频教程

    Lucene&solr(2天学习)

    3、Lucene

    2018年黑马程序员就业班57期之【Lucene】

    4、Shiro

    SpringBoot与Shiro整合-权限管理实战视频

    5、Elasticsearch7.X

    2019年全新录制Elasticsearch7.X搜索引擎项目实战Java架构全套视频教程

    6、Dubbo

    尚硅谷Java视频教程_Dubbo

    (千锋教育)Java 微服务架构 Dubbo 篇 一款高性能 Java RPC 框架

    十四、关于JVM虚拟机

    1、JVM博客文章

    深入理解java虚拟机系列初篇(一):为什么要学习JVM?

    别翻了,这篇文章绝对让你深刻理解java类的加载机制【JVM篇二】

    持续写作中…

    2、JVM视频

    面试JVM,听这堂课就够了

    深入理解JVM

    3、JVM书籍

    博主不想bb啥并朝你丢了一本深入java虚拟机

    链接:https://pan.baidu.com/s/1C3bQOIdxdjHOwq6MT283yQ&shfl=sharepset
    提取码:zkww

    十五、关于消息中间件、RabbitMQ、RocketMQ、ActiveMQ

    单独讲下消息中间件,主要是中间件塔喵的太多惹…

    1、Kafka

    尚硅谷大数据课程之Kafka(2019新版)

    2、RabbitMQ

    MQ消息中间件RabbitMQ 入门到进阶+(牧码人/老王/)+(架构师系列)

    Java架构师带你90分钟快速搞定RabbitMQ消息中间件

    3、RocketMQ

    RocketMQ系统精讲,经受历年双十一狂欢节考验的分布式消息中间件

    2019年最新版Springboot+mybatis+RocketMQ+SpringCloud技术讲解

    4、ActiveMQ

    尚硅谷消息中间件之ActiveMQ

    2019尚硅谷谷粒商城微服务SpringBoot,Dubbo,MySql高级,Redis秒杀,ElasticSearch,ActiveMQ…

    十六、关于容器化技术docker、kubernetes

    尚硅谷_Docker核心技术(基础篇)

    【公开课】Docker入坑教程【33集】

    马哥运维进阶教程:Kubernetes(K8s)从入门到精通

    尚硅谷Kubernetes(k8s基于最新2019年8月发布的1.15.1)

    十七、关于微服务框架

    随着基于Spring之上的框架SpringBoot、Cloud的流行,基于注解式开发的热潮逐渐覆盖了基于XML纯配置的开发,Spring注解将显得格外重要…所以…所以…所以个锤子啊不关咋们什么事啊。。。开个玩笑哈哈,至于微服务框架的学习看个人吧,最好是在找工作前学习一下,现在IT门槛越来越高了,不会点分布式缓存真的不好找工作。

    1、SpringBoot视频

    SpringBoot视频教程(idea版)_2018_spring boot_springboot核心篇+springboot整合篇

    尚硅谷好评如潮【SpringBoot】视频

    2、SpringCloud视频

    尚硅谷_SpringCloud(全)

    千锋:2019Java微服务架构(SpringBoot+SpringCloud)

    答应博主,一定要坚持学完啊!!!

    十八、关于面试

    2019最新Java面试题集精讲全集(互联网大厂必问)

    Java面试题全集84集系列

    京东小米面经

    十九、关于另一层次的学习

    1、参阅官方文档

    另一级别的学习最好的方式就是参阅官方文档,亲生父母往往对孩子是最了解,Spring Boot Reference Guide就是对springboot最了解,怎么样使用springbootspringboot特性等等,springboot在你面前一览无遗;啥?英语不好???google百度翻译插件你值得拥有,咬咬牙也是能看的。如果有时间可以重新学英语,记住,世上无难事,只怕有心人,学什么都不会太晚。

    2、国内技术书籍

    官方文档其次就是书籍,国内的好书自成体系,帮助我们掌握的知识点不至于太散。

    3、参阅博客文章、闲逛github

    再次就是博客文章,不得不吐槽几句,网上的很大一部分文章都是非常浅显,再加上一些标题党的横行,简直不忍直视。这也是很多人抵制博客文章的原因,这里不得不提一下:每次百度或者谷歌一下知识点或者bug,我敢打包票出现最多的推荐靠前的都是CSDN,我相信很多人会认为CSDN很强大,实际上你错了,过段时间你就会慢慢抵制CSDN,看到简书或者博客园、知乎的文章你会优先去看。至于原因就是因为CSDN是国内最大的博客平台,同时一些“标题党.equal 烂人”随之衍生,为了所谓的点击量,博取眼球,自以为自己访问量高很nice?这里也不是说起博取眼球的标题是抵制,前提是你的这篇文章要有一定深度和见解,能够撑起整片文章知识点的架构,博取眼球的标题才是真正有意义的,当之无愧。

    总归来说,园子内还是有很多技术大牛,写的博客自然也是非常棒,非常具有学习价值。每次看都是一种享受,一种熏陶。当然还有github、社区、论坛、码云等等。这就是源码的朋友圈,我们从中也能获取到非常多关于源码的信息。但是针对某个知识点却特别的细,对彻底掌握非常有帮助。

    至于博主为啥要抽空整理出这样一篇博客文章,原因很简单…

    博主大一下学期的时候无尽的迷茫惆怅,博主何尝不期望有位“高人”指路,想学却又不知从何下手,那种无助那种孤独的滋味我懂…
    所以博主只希望生活能够不辜负每个少年的一腔热血,写作本文章的意义仅此而已…

    瓜皮群众皮皮甲: 呜呜呜…博主大一下学期原来这么孤独啊,看了这么久的文章还一直以为这位博主是个有趣、对生活充满阳光的,没想到这个博主“徒有其表”啊 QnQ

    瓜皮群众皮皮乙: 是啊是啊…

    博主: 咳咳…那啥…今天就先到这里了,博主有事,唉唉唉…看…又是那个该死的包工头来电话了,话说今天的砖头格外烫手。

    瓜皮群众皮皮丙: 博主怎么画风怎么又变了, 唉唉唉…博主别走鸭…上我家搬砖去啊,午饭外加一个鸡腿…

    如果有想要和博主一起交流的朋友,欢迎各位及时联系博主…那… 咋们有bing再见~

    持续更新…

    如果本文对你有一点点帮助,那么请点个赞呗,谢谢~

    最后,若有不足或者不正之处,欢迎指正批评,感激不尽!如果有疑问欢迎留言,绝对第一时间回复!

    欢迎各位关注我的公众号,公众号里有全套java电子书籍和学习资料喔,一起探讨技术,向往技术,追求技术,说好了来了就是盆友喔…

    在这里插入图片描述

    展开全文
  • java核心技术精讲

    万人学习 2019-12-24 19:57:49
    本课程主要读者全面细致的讲解Java编程的所有核心知识,从基础语法、到面向对象以及Java的实际应用进行完整讲解。官方QQ群:612148723。
  • 推荐10个堪称神器的 Java 学习网站

    万次阅读 多人点赞 2020-03-18 15:36:03
    Java学习网站,有了这些,成为大牛不在话下

    经常有一些读者问我:“二哥,学习 Java 应该关注哪些网站?”,我之前的态度一直是上知乎、上搜索引擎搜一下不就知道了。但读者对我这个态度很不满意,他们说,“我在问你,又不是问知乎,问搜索引擎。”你还别说,读者说得有道理。

    于是我想,那就推荐一些吧。先说我心目中的前三名,但不局限于 Java 学习者。

    1)Google

    啥都不说了,说多了都是泪,可气的是 Robin 李的搜索引擎实在是不争气。说句良心话,Google 的搜索结果比前者的质量高出一百(零一)倍。

    我想,推荐 Google 的人不在少数,但 Google 不能直接访问啊。一年前,我通过种种努力找到了解决办法,问遍了所有群,遭受了无数的嘲讽。

    Google 也算是网站?必须算啊。只要你想要学习,它会给你所有。

    2)Stack Overflow

    Stack Overflow 可以说是解决问题的杀手锏。下面这些问题是不是都很常见?

    如果英语能力不太好的话,可以借助一下 Chrome 浏览器的自动翻译功能。

    3)GitHub

    GitHub 是一个拥有数十亿行代码的网站,每天有数百万开发者聚集在一起,研究开源软件中存在的问题。

    对于普通的程序员来说,如果不想重复造轮子,就必须要站在巨人的肩膀上,那么巨人是谁呢?就是 GitHub。那些牛逼的开源软件库,99% 的情况下会在 GitHub 上找到它。

    对于成功的程序员来说,如果想要被别人膜拜,最好能在 GitHub 上贡献一个开源库,如果星标超过 1W,那可是相当的牛逼,在业界应该算是响当当的人物。

    然后,我再推荐一些 Java 程序员必须要关注的网站。

    4)IBM Developer

    IBM developerWorks 提供了中文版,里面的文章都属于非常高质量的。

    5)Java SE 技术文档

    即使是 Java 编程的大牛 , 也离不开这份文档。中文版的 API 可以参照:http://tool.oschina.net/apidocs/apidoc?api=jdk-zh

    6)Java World

    这个网站包含了大量的 Java 教程 , 涉及各种各样的话题。其中很多文章都写的很好 , 并且有图片、插图进行说明。它可以被用来当作深度学习的教科书。英文能力有限的话,可以使用谷歌翻译。

    7)Program Creek

    Program Creek 在维护方面做的很好 , 文章读起来也比较有趣。在这里 , 你可以找到其他任何网站都不曾涉及到的话题 , 而且几乎每篇文章都包含漂亮的插图或者示例代码。

    8)LeetCode

    备战技术面试?力扣提供了海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。

    刷题的话,还有一个牛客网值得推荐,里面各个公司的面试题和面经分享,找工作前认真刷一刷,一定会大有所获。这里强调一下刷题的重要性:

    • 可以让思维保持活跃
    • 强化对基本知识的理解
    • 要想找到工作,就要过面试,不刷题怎么能行

    9)JournalDev

    想学系列文章,我推荐 JournalDev,这个网站上所有的 Java 系列文章都堪称经典。有 Spring,有 Java 设计模式,有 Java 核心,有 Java EE,有 Java 面试题,应有尽有。
    在这里插入图片描述

    10)CSDN

    CSDN 上虽然很多标题党文章,文章质量也参差不齐,但上面仍然有不少大牛的。说句不好听的,学习,只要遇到一篇能够帮助到自己的文章,就算是值了。

    兄dei,如果觉得我写的不错,不妨帮个忙

    1、关注我的原创微信公众号「沉默王二」,每天准时推送干货技术文章,专注于有趣的Java技术和有益的程序人生,听说关注了的不优秀也会变得优秀哦。

    2、给这篇文章点个赞呗,可以让更多的人看到这篇文章,顺便激励下我,嘻嘻。

    作者简洁

    作者:你好呀,我是沉默王二,从大专到培训到外包,经历了很多辛酸,所以申请了一个微星公众号『沉默王二』,专业于写这些基础知识,提升我们的内功,二哥期待你的关注,和我一起学习。 转载说明:未获得授权,禁止转载

    展开全文
  • java&一些练习题

    2017-09-21 18:50:43
    这是转载自一位前辈收集的结果 1.程序实现目标: 输入一个字符串,将其各个字符对应的ASCII值加5后,输出结果。...[java] view plain copy  import java.util.Scanner;       publi
    这是转载自一位前辈收集的结果
    1.程序实现目标: 输入一个字符串,将其各个字符对应的ASCII值加5后,输出结果。
    程序要求:该字符串只包含小写字母,若其值加5后的字符值大于'z',将其转换成从a开始的字符。

    [java] view plain copy
    1.    import java.util.Scanner;  
    2.   
    3.   
    4.    public class Test {  
    5.   
    6.   
    7. public static void main(String[] args) {  
    8.     System.out.println(StringASCII("abcd"));  
    9.     Scanner in = new Scanner(System.in);  
    10.     System.out.println("请输入一串小写字母:");  
    11.     String str = in.next();  
    12.     System.out.println(StringASCII(str));  
    13.     in.close();  
    14. }  
    15.   
    16.   
    17. public static String StringASCII(String str) {  
    18.     StringBuffer reslut = new StringBuffer();  
    19.     // 将字符串转换成数组  
    20.     char[] array = str.toCharArray();  
    21.     for (int i = 0; i < array.length; i++) {  
    22.         char arr= (char) (array[i] + 5);  
    23.         if (arr >'z') {  
    24.             arr = 'a';  
    25.         }  
    26.         reslut.append(arr);  
    27.     }  
    28.     return reslut.toString();  
    29. }  


    2.程序实现目标:求一个整型数组中元素的平均值,并统计其中大于和小于此平均值的元素的个数。
      程序要求:输入:整型数组中的元素个数及各个元素。

                输出:整型数组中元素的平均值,大于和小于此平均值的元素的个数

    [java] view plain copy
    1. import java.util.Scanner;  
    2.   
    3.   
    4. public class CountAvg {  
    5.   
    6.   
    7.     /** 
    8.      * @param args 
    9.      */  
    10.     public static void main(String[] args) {  
    11. //      int arr[] = { 1, 2, 4, 23, 8, 11, 22, 31 };  
    12.         int[] arr = inputArr();  
    13.         int[] count = count(arr);  
    14.         System.out.println("数组的平均值:" + count[2] + ",小于平均值的个数:" + count[1]  
    15.                 + ",大于平均值的个数:" + count[0]);  
    16.     }  
    17.   
    18.   
    19.     // 输入整形数组  
    20.     private static int[] inputArr() {  
    21.         Scanner scanner = new Scanner(System.in);  
    22.         System.out.println("请输入整形数组的长度:");  
    23.         int i = scanner.nextInt();  
    24.         int arr[] = new int[i];  
    25.         System.out.println("请输入整形数组的元素:");  
    26.         for (int j = 0; j < arr.length; j++) {  
    27.             int str = scanner.nextInt();  
    28.             // System.out.println(arr[j]+"----"+str);  
    29.             arr[j] = str;  
    30.         }  
    31.         scanner.close();  
    32.         return arr;  
    33.     }  
    34.   
    35.   
    36.     /** 
    37.      * 求出整形数组的平均值,大于和小于平均值的个数 
    38.      *  
    39.      * @param arr 
    40.      * @return 
    41.      */  
    42.     private static int[] count(int[] arr) {  
    43.         int m = 0, n = 0, avg, total = 0;  
    44.         for (int i = 0; i < arr.length; i++) {  
    45.             total += arr[i];  
    46.         }  
    47.         avg = total / arr.length;  
    48.         for (int i = 0; i < arr.length; i++) {  
    49.             if (avg < arr[i]) {  
    50.                 m++;  
    51.             } else {  
    52.                 n++;  
    53.             }  
    54.         }  
    55.         int result[] = new int[3];  
    56.         result[0] = m;  
    57.         result[1] = n;  
    58.         result[2] = avg;  
    59.         return result;  
    60.     }  
    61. }  

    3、手动输入一个存储整数的数组,要求输出数组里面的2个最大值。
       实例: 
                 输入:1,2,5,9,84,3,2
                 输出:84,9

       
    [java] view plain copy
    1.  import java.util.Scanner;  
    2.   
    3.   
    4.     public class CountMax {  
    5.   
    6.   
    7.     /** 
    8.      * @param args 
    9.      */  
    10.     public static void main(String[] args) {  
    11.         int[] arr = inputArr();  
    12.         countMax(arr);  
    13.         System.out.println("最大值:" + arr[0] + ",第二大的值" + arr[1]);  
    14.     }  
    15.   
    16.   
    17.     /** 
    18.      * 计算出两个最大值 
    19.      *  
    20.      * @param arr 
    21.      * @return 
    22.      */  
    23.     private static void countMax(int[] a) {  
    24.         // 冒泡排序  
    25.         int temp = 0;  
    26.         for (int i = 0; i < a.length; i++) {  
    27.             for (int j = 0; j < a.length - i - 1; j++) {  
    28.                 if (a[j] < a[j + 1]) { // 把这里改成大于,就是升序了  
    29.                     temp = a[j];  
    30.                     a[j] = a[j + 1];  
    31.                     a[j + 1] = temp;  
    32.                 }  
    33.             }  
    34.         }  
    35.     }  
    36.   
    37.   
    38.     // 输入整形数组  
    39.     private static int[] inputArr() {  
    40.         Scanner scanner = new Scanner(System.in);  
    41.         System.out.println("请输入整形数组的长度:");  
    42.         int i = scanner.nextInt();  
    43.         int arr[] = new int[i];  
    44.         System.out.println("请输入整形数组的元素:");  
    45.         for (int j = 0; j < arr.length; j++) {  
    46.             int str = scanner.nextInt();  
    47.             // System.out.println(arr[j]+"----"+str);  
    48.             arr[j] = str;  
    49.         }  
    50.         scanner.close();  
    51.         return arr;  
    52.     }  
    53. }  

    [java] view plain copy
    1. </pre><span style="font-size:18px;">4、回文数字判断。题目描述:    有这样一类数字,他们顺着看和倒着看是相同的数,例如:121,656,2332等,这样的数字就称为:回文数字。编写一个函数,判断某数字是否是回文数字。    要求实现方法:public String isPalindrome(String strIn);【输入】strIn: 整数,以字符串表示;【返回】true: 是回文数字;              false: 不是回文数字;【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出</span><pre name="code" class="java">import java.util.Scanner;  
    2.   
    3.   
    4. public class Palindrome {  
    5.   
    6.   
    7.     /** 
    8.      * @param args 
    9.      */  
    10.     public static void main(String[] args) {  
    11.         Scanner in = new Scanner(System.in);  
    12.         System.out.println("请输入一个整形数字:");  
    13.         String str = in.next();  
    14.         if (isPalindrome(str)) {  
    15.             System.out.println(str + "--是回文数字");  
    16.         } else {  
    17.             System.out.println(str + "--不是回文数字");  
    18.         }  
    19.         in.close();  
    20.     }  
    21.   
    22.   
    23.     /** 
    24.      * 判断是否为回文数字 
    25.      *  
    26.      * @param str 
    27.      * @return 
    28.      */  
    29.     private static boolean isPalindrome(String str) {  
    30.         boolean result = false;  
    31.         System.out.println("str长度---" + str.length());  
    32.         for (int i = 0; i <= str.length() / 2 - 1; i++) {  
    33.             if (str.charAt(i) == str.charAt(str.length() - i - 1)) {  
    34.                 result = true;  
    35.             }else {  
    36.                 result = false;  
    37.             }  
    38.         }  
    39.         return result;  
    40.     }  
    41.   
    42.   
    43. }  


    5、要求:随机打印50个随机(4-10长度)的字符串,要求字符串包含的范围是所有的英文字母包含大小写和数字,按照编码顺序排序,每行打印4个,要求首字符对齐.
    [java] view plain copy
    1. import java.util.ArrayList;  
    2. import java.util.List;  
    3. import java.util.Random;  
    4.   
    5.   
    6. public class RandomStr {  
    7.   
    8.   
    9.     /** 
    10.      * @param args 
    11.      */  
    12.     public static void main(String[] args) {  
    13.         List<String> arrayStr = new ArrayList<String>();  
    14.         for (int i = 0; i < 50; i++) {  
    15.             Random random = new Random();  
    16.             // 0-6  
    17.             int nextInt = random.nextInt(7);  
    18.             int strlen = nextInt + 4;  
    19.             // 打印出随机数  
    20.             String randomStr = randomStr(strlen);  
    21.             // System.out.println("打印出来的字符串:" + randomStr);  
    22.             arrayStr.add(randomStr);  
    23.         }  
    24.         int count = 0;  
    25.         for (String str : arrayStr) {  
    26.             System.out.print(str + " ");  
    27.             if (count % 4 == 0) {  
    28.                 // 换行  
    29.                 System.out.println();  
    30.             }  
    31.             count++;  
    32.         }  
    33.     }  
    34.   
    35.   
    36.     /** 
    37.      * 打印出随机的字符串 
    38.      *  
    39.      * @param strlen 
    40.      * @return 
    41.      */  
    42.     private static String randomStr(int strlen) {  
    43.         char[] str = new char[strlen];  
    44.         int i = 0;  
    45.         while (i < strlen) {  
    46.             // 生成0-3的随机数  
    47.             int f = new Random().nextInt(4);  
    48.             if (f == 0) {  
    49.                 str[i] = (char) ('a' + Math.random() * 26);  
    50.             } else if (f == 1) {  
    51.                 str[i] = (char) ('A' + Math.random() * 26);  
    52.             } else {  
    53.                 str[i] = (char) ('0' + Math.random() * 10);  
    54.             }  
    55.             i++;  
    56.         }  
    57.   
    58.   
    59.         return new String(str);  
    60.     }  
    61.   
    62.   
    63. }  


    6.手动输入一个字符串,仅限小写字母,统计并输出每个字符在字符串中出现的次数,并输出。提示(可以用Map)
    实例:
    输入:aaabbbccc
    输出:a 3
          b 3
          c 3

    [java] view plain copy
    1. import java.util.HashMap;  
    2. import java.util.Map;  
    3. import java.util.Scanner;  
    4.   
    5.   
    6. public class NumberOfElement {  
    7.   
    8.   
    9.     /** 
    10.      * @param args 
    11.      */  
    12.     public static void main(String[] args) {  
    13.         Scanner in = new Scanner(System.in);  
    14.         System.out.println("请输入的一组小写字符串:");  
    15.         String str = in.next();  
    16.         in.close();  
    17.         // 正则运算  
    18.         String reg = "^[a-z]*$";  
    19.         if (str.matches(reg)) {  
    20.   
    21.   
    22.             Map<Character, Integer> charCount = getCharCount(str);  
    23.             // 遍历map  
    24.             for (Map.Entry<Character, Integer> e : charCount.entrySet()) {  
    25.                 System.out.println(e.getKey() + " " + e.getValue());  
    26.             }  
    27.         }else {  
    28.             System.out.println("您输入的字符串不符合要求");  
    29.         }  
    30.     }  
    31.   
    32.   
    33.     private static Map<Character, Integer> getCharCount(String str) {  
    34.         Map<Character, Integer> map = new HashMap<Character, Integer>();  
    35.         char[] array = str.toCharArray();  
    36.         for (int i = 0; i < array.length; i++) {  
    37.             if (!map.containsKey(array[i])) {  
    38.                 map.put(array[i], 1);  
    39.             } else {  
    40.                 map.put(array[i], map.get(array[i]) + 1);  
    41.             }  
    42.         }  
    43.         return map;  
    44.     }  
    45.   
    46.   
    47. }  


    7、要求实现方法public String addTwoBigNumber(String s1,string s2)
     大数相加,注意处理异常

    [java] view plain copy
    1. import java.math.BigInteger;  
    2. import java.util.Scanner;  
    3.   
    4.   
    5. public class BigNumAdd {  
    6.   
    7.   
    8.     /** 
    9.      * @param args 
    10.      */  
    11.     public static void main(String[] args) {  
    12.         Scanner in = new Scanner(System.in);  
    13.         System.out.println("请输入第一个大数:");  
    14.         String str1 = in.next();  
    15.         System.out.println("请输入第二个大数:");  
    16.         String str2 = in.next();  
    17.         in.close();  
    18.         if (isBigNumber(str1) &&isBigNumber(str2)) {  
    19.             String bigNumber = addTwoBigNumber(str1, str2);  
    20.             System.out.println("两个大数相加的结果为:" + bigNumber);  
    21.         }else {  
    22.             System.out.println("输入错误!");  
    23.         }  
    24.     }  
    25.   
    26.   
    27.     /** 
    28.      * 大数相加 
    29.      *  
    30.      * @param s1 
    31.      * @param s2 
    32.      * @return 
    33.      */  
    34.     public static String addTwoBigNumber(String s1, String s2) {  
    35.         BigInteger bt1 = new BigInteger(s1);  
    36.         BigInteger bt2 = new BigInteger(s2);  
    37.         return bt1.add(bt2).toString();  
    38.     }  
    39.     /** 
    40.      * 判断一个字符串是否为大数 
    41.      * @param str 
    42.      * @return  
    43.      */  
    44.     public static boolean isBigNumber(String str) {  
    45.         boolean result = false;  
    46.         String reg = "[0-9]*$";  
    47.         if (str.matches(reg)) {  
    48.             result = true;  
    49.         } else {  
    50.             result = false;  
    51.         }  
    52.         return result;  
    53.     }  
    54. }  

    8、比较二维数组列最小值,组成一个新数组返回。(实现核心算法,不需要使用IO)

    输入:intArr = {{5,6,1,16},{7,3,9}}

    输出:intArrs ={1,3}


    [java] view plain copy
    1. import java.util.Arrays;  
    2. import java.util.Scanner;  
    3.   
    4.   
    5.   
    6.   
    7. public class CountMin {  
    8.   
    9.   
    10.     /** 
    11.      * @param args 
    12.      */  
    13.     public static void main(String[] args) {  
    14.         int[][] arr = {{5,6,1,16},{7,3,9},{5,7,12}};  
    15.         int[] colmin = getColmin(arr);  
    16.         System.out.println(Arrays.toString(colmin));  
    17.     }  
    18.   
    19.   
    20.     private static int[] getColmin(int[][] arr) {  
    21.         int minArr[] = new int[arr.length];  
    22.         for (int i = 0; i < arr.length; i++) {  
    23.             int tmp[] = arr[i];  
    24.             // 数组的排序,从小到大  
    25.             Arrays.sort(tmp);  
    26.             minArr[i] = tmp[0];  
    27.         }  
    28.         return minArr;  
    29.     }  
    30.   
    31.   
    32. }  


    9. 输入:a aa,cat tiger.123dd 
    输出: tiger
    功能描述:键盘输入一句话
    输出一句话中最常的单词,如果最长的出现多次,返回第一个。这句话只包含数字字母和标点。

    [java] view plain copy
    1. import java.util.ArrayList;  
    2. import java.util.HashMap;  
    3. import java.util.Map;  
    4. import java.util.Scanner;  
    5.   
    6.   
    7.   
    8.   
    9. public class FindLongString {  
    10.   
    11.   
    12.     /** 
    13.      * @param args 
    14.      */  
    15.     public static void main(String[] args) {  
    16. //      String str = "a aa,cat tiger.123dd 12ssss,asxdrt saxfdt asdgde";  
    17.         Scanner in = new Scanner(System.in);  
    18.         System.out.println("请任意的输入一串字符串:");  
    19.         String str = in.nextLine();  
    20.         System.out.println("str---" + str);  
    21.         String reslut = getLongString(str);  
    22.         System.out.println("----" + reslut);  
    23.         in.close();  
    24.     }  
    25.     /** 
    26.      * 找出一串字符串中最长的字符 
    27.      * @param str 
    28.      * @return 
    29.      */  
    30.     private static String getLongString(String str) {  
    31.         String reg = "[ .,]";  
    32.         String[] arr = str.split(reg);  
    33.         ArrayList<String> result = new ArrayList<String>();  
    34.         int length = 0;  
    35.         for (int i = 0; i < arr.length; i++) {  
    36.             System.out.println(arr[i]);  
    37.             // 获得长度  
    38.             if (length<arr[i].length()) {  
    39.                 length = arr[i].length();  
    40.                 result.add(arr[i]);  
    41.             }  
    42.         }  
    43.         return result.get(result.size()-1);  
    44.     }  
    45.   
    46.   
    47. }  


    10. 功能描述:将字符串中的字母全部替换成字母的下一个字母,
    要是最后一位是z或Z则替换为a或A。
    输入:aBxyZ
    输出:bCyzA

    [java] view plain copy
    1. import java.util.Scanner;  
    2.   
    3.   
    4.   
    5.   
    6. public class TransNext {  
    7.   
    8.   
    9.     /** 
    10.      * @param args 
    11.      */  
    12.     public static void main(String[] args) {  
    13.         Scanner in = new Scanner(System.in);  
    14.         System.out.println("请输入一串字符串(大小写字母):");  
    15.         String str = in.nextLine();  
    16.         String reg = "^[A-Za-z]+$";  
    17. //      String reg2 = "^[A-Z]$";  
    18.         if (str.matches(reg)) {  
    19.             String result = transNext(str);  
    20.             System.out.println("转换后的字符串:" + result);  
    21.         }else {  
    22.             System.out.println("输入不符合要求!");  
    23.         }  
    24.         in.close();  
    25.     }  
    26.     /** 
    27.      * 将字符串中的字母全部替换成字母的下一个字母 
    28.      * @param str 目标字符串 
    29.      * @return 
    30.      */  
    31.     private static String transNext(String str) {  
    32.         char[] charArray = str.toCharArray();  
    33.         char[] newArray = new char[charArray.length];  
    34.         for (int i = 0; i < charArray.length; i++) {  
    35.             newArray[i] = (char) (charArray[i]+ 1);  
    36.             if (charArray[i] =='Z') {  
    37.                 newArray[i] = 'A';  
    38.             }  
    39.             if (charArray[i] =='z') {  
    40.                 newArray[i] = 'a';  
    41.             }  
    42.         }  
    43.         return String.valueOf(newArray);  
    44.     }  
    45.   
    46.   
    47. }  


    11. 功能描述:判断一个字符串中是否只含有相同的子字符串(子串长度>=2)
    输入:abab 
    返回:true
    输入:abcd
    返回:false

    [java] view plain copy
    1. import java.util.HashMap;  
    2. import java.util.Map;  
    3. import java.util.Scanner;  
    4.   
    5.   
    6. public class CheckStr {  
    7.   
    8.   
    9.     /** 
    10.      * @param args 
    11.      */  
    12.     public static void main(String[] args) {  
    13.         Scanner in = new Scanner(System.in);  
    14.         System.out.println("请输入一串字符:");  
    15.         String str = in.nextLine();  
    16.         in.close();  
    17.         boolean result = checkString(str);  
    18.         System.out.println("结果--" + result);  
    19.     }  
    20.   
    21.   
    22.     public static boolean checkString(String data) {  
    23.         boolean result = false;  
    24.         Map<Character, Integer> map = new HashMap<Character, Integer>();  
    25.         char[] array = data.toCharArray();  
    26.         for (int i = 0; i < array.length; i++) {  
    27.             if (!map.containsKey(array[i])) {  
    28.                 result = false;  
    29.                 map.put(array[i], 1);  
    30.             }else {  
    31.                 result = true;  
    32.             }  
    33.         }  
    34.         return result;  
    35.     }  
    36. }  


    12. 功能描述:已知:yi er san si wu liu qi ba jiu 分别对应123456789,
    对一段只含有这几种字符串的字符串进行转换,如:
    输入:yiersansan
    输出:1233



       
    [java] view plain copy
    1. public class Tran2Num {  
    2.   
    3.   
    4. /** 
    5.  * 功能描述:已知:yi er san si wu liu qi ba jiu 分别对应123456789, 
    6.  * 对一段只含有这几种字符串的字符串进行转换,如: 输入:yiersansan 输出:1233 
    7.  *  
    8.  * @param args 
    9.  */  
    10. public static void main(String[] args) {  
    11.     String str = "yiersansansisiwuwu";  
    12.     String number = trunNumber(str);  
    13.     System.out.println("转换输出的结果--" + number);  
    14. }  
    15.   
    16.   
    17. public static String trunNumber(String data) {  
    18.     String result = "";  
    19.     String str[] = {"yi","er","san","si","wu","liu","qi"," ba","jiu"};  
    20.     for (int i = 0; i < 9; i++) {  
    21.         if (data.contains(str[i])) {  
    22.             result = data.replace(str[i], String.valueOf(i+1));  
    23.             data = result;  
    24.         }  
    25.     }  
    26.     return result;  
    27. }  



    13. 功能描述:删除字符串中字符个数最少的字符,最少字符串有多个,最少的要全部删除
                   然后返回该子字符串。
    输入:asdasdas
    输出:asasas

    [java] view plain copy
    1. import java.util.ArrayList;  
    2. import java.util.Arrays;  
    3. import java.util.HashMap;  
    4. import java.util.List;  
    5. import java.util.Map;  
    6. import java.util.Scanner;  
    7.   
    8.   
    9. public class DeleteMin {  
    10.   
    11.   
    12.     /** 
    13.      * 功能描述:删除字符串中字符个数最少的字符,最少字符串有多个,最少的要全部删除 然后返回该子字符串。 
    14.      * 输入:asdasdas 输出:asasas 
    15.      *  
    16.      * @param args 
    17.      */  
    18.     public static void main(String[] args) {  
    19.         //String str = "asdasdas";  
    20.         Scanner in = new Scanner(System.in);  
    21.         System.out.println("请输入一串字符串:");  
    22.         String str = in.nextLine();  
    23.         in.close();  
    24.         List<Character> deleteChar = deleteLittle(str);  
    25.         for (Character character : deleteChar) {  
    26.             str = str.replace(character.toString(), "");  
    27.        //System.out.println("出现次数最少的字符---" + character.toString());  
    28.         }  
    29.         System.out.println("删除后的字符串---" + str);  
    30.     }  
    31.   
    32.   
    33.     private static List<Character> deleteLittle(String str) {  
    34.         // 统计那些字符串的个数最少  
    35.         Map<Character, Integer> map = new HashMap<Character, Integer>();  
    36.         char[] charArray = str.toCharArray();  
    37.         for (int i = 0; i < charArray.length; i++) {  
    38.             if (!map.containsKey(charArray[i])) {  
    39.                 map.put(charArray[i], 1);  
    40.             } else {  
    41.                 map.put(charArray[i], map.get(charArray[i]) + 1);  
    42.             }  
    43.         }  
    44.         // 删除map中值最小的字符串  
    45.         int[] values = new int[map.size()];  
    46.         int i = 0;  
    47.         for (Map.Entry<Character, Integer> e : map.entrySet()) {  
    48.             // 获得值的大小  
    49.             values[i++] = e.getValue();  
    50.         }  
    51.         // 排序  
    52.         Arrays.sort(values);  
    53.         // 得到最小值  
    54.         int j = values[0];  
    55.         List<Character> list = new ArrayList<Character>();  
    56.         for (Map.Entry<Character, Integer> e : map.entrySet()) {  
    57.             // 通过值获取键  
    58.             if (e.getValue() == j) {  
    59.                 Character key = e.getKey();  
    60.                 list.add(key);  
    61.             }  
    62.         }  
    63.         return list;  
    64.     }  
    65. }  

    16. 功能描述:统计一个数字转为二进制后,01的个数,组成数组返回

    输入:6

    输出:{1,2}

    [java] view plain copy
    1. import java.util.Arrays;  
    2. import java.util.HashMap;  
    3. import java.util.Map;  
    4. import java.util.Scanner;  
    5.   
    6. public class Int2ASSII {  
    7.   
    8.     /** 
    9.      * @param args 
    10.      */  
    11.     public static void main(String[] args) {  
    12. //      int i = 6;  
    13.         Scanner in = new Scanner(System.in);  
    14.         System.out.println("请输入一个数字:");  
    15.         int i = in.nextInt();  
    16.         in.close();  
    17. //      String reg = "^[0-9]*$";  
    18. //      if (!String.valueOf(i).matches(reg)) {  
    19. //          System.out.println("请输入数字!");  
    20. //      }  
    21.         int[] result = trans(i);  
    22.         System.out.println("输出---" + Arrays.toString(result));  
    23.     }  
    24.   
    25.     /** 
    26.      * 将数字转换成ASII码 
    27.      *  
    28.      * @param i 
    29.      * @return 返回0和1的个数 
    30.      */  
    31.     private static int[] trans(int i) {  
    32.         // 将整形转换成二进制  
    33.         char[] charArray = Integer.toBinaryString(i).toCharArray();  
    34.         Map<Character, Integer> map = new HashMap<Character, Integer>();  
    35.         for (int j = 0; j < charArray.length; j++) {  
    36.             if (!map.containsKey(charArray[j])) {  
    37.                 map.put(charArray[j], 1);  
    38.             } else {  
    39.                 map.put(charArray[j], map.get(charArray[j]) + 1);  
    40.             }  
    41.         }  
    42. //      int[] result = new int[2];  
    43.         Integer integer = map.get('0');  
    44.         Integer integer2 = map.get('1');  
    45.         int[] result = {integer,integer2};  
    46. //      for (Map.Entry<Character, Integer> entry : map.entrySet()) {  
    47. //          if (entry.getKey() == '0') {  
    48. //              result[0] = entry.getValue();  
    49. //          } else {  
    50. //              result[1] = entry.getValue();  
    51. //          }  
    52. //      }  
    53.         return result;  
    54.     }  
    55.   
    56. }  

    17. 功能描述:对一个二进制数的每位进行01反转,求翻转后的二进制所对应的十进制

    输入:1010

    输出:5

    [java] view plain copy
    1. import java.util.Arrays;  
    2.   
    3.   
    4. public class Binary2Int {  
    5.   
    6.     /** 
    7.      * @param args 
    8.      */  
    9.     public static void main(String[] args) {  
    10.         String str = "1010";  
    11.         int result = binaryToInt(str);  
    12.         System.out.println("反转后的值:" + result);  
    13.     }  
    14.     /** 
    15.      * 对一个二进制数的每位进行0和1反转,求翻转后的二进制所对应的十进制 
    16.      * @param str 
    17.      * @return 
    18.      */  
    19.     private static int binaryToInt(String str) {  
    20.         char[] array = str.toCharArray();  
    21.         for (int i = 0; i < array.length; i++) {  
    22.             if (array[i]=='0') {  
    23.                 array[i]='1';  
    24.             }else {  
    25.                 array[i]='0';  
    26.             }  
    27.         }  
    28.         System.out.println(Arrays.toString(array));  
    29.         String result = "";  
    30.         for (int i = 0; i < array.length; i++) {  
    31.             result += array[i];  
    32.         }  
    33.         return Integer.parseInt(result, 2);  
    34.     }  
    35.   
    36. }  

    18. 功能描述:判断一个字符串中的"( )"是否配对

    输入:if(a.equals(a))

    输出:true

    [java] view plain copy
    1. public class IsMatch {  
    2.   
    3.     /** 
    4.      * 判断一个字符串中的"( )"是否配对  
    5.      * 输入:if(a.equals(a)) 输出:true 
    6.      * @param args 
    7.      */  
    8.     public static void main(String[] args) {  
    9.         String str = "if(a.(equals(a)))";  
    10.         boolean result = isMatch(str);  
    11.         System.out.println("字符串中的()是否配对:" + result);  
    12.     }  
    13.   
    14.     /** 
    15.      * 判断()内的字符是否匹配 
    16.      *  
    17.      * @param str 
    18.      * @return 
    19.      */  
    20.     private static boolean isMatch(String str) {  
    21.         boolean result = false;  
    22.         int count = 0;  
    23.         char[] array = str.toCharArray();  
    24.         for (int i = 0; i < array.length; i++) {  
    25.             if (array[i] == '(') {  
    26.                 count++;  
    27.             } else if (array[i] == ')') {  
    28.                 count--;  
    29.             }  
    30.         }  
    31.         if (count == 0) {  
    32.             result = true;  
    33.         }  
    34.         return result;  
    35.     }  
    36.   
    37. }  

    19. 功能描述:查找一个字符串的子字符串集

    输入:abab

    输出:a b ab ba aba bab 

     

    要求实现方法:

    public List<String> getChildren(String data)

    {

        List<String> list = new ArrayList<String>();

        //TODO

        return list;

    }

    [java] view plain copy
    1. import java.util.ArrayList;  
    2. import java.util.List;  
    3.   
    4. public class GetChildren {  
    5.   
    6.     /** 
    7.      * 查找一个字符串的子字符串集 输入:abab 输出:a b ab ba aba bab 
    8.      *  
    9.      * @param args 
    10.      */  
    11.     public static void main(String[] args) {  
    12.         String str = "ababc";  
    13.         List<String> children = getChildren(str);  
    14. //      System.out.println(children.toString());  
    15.         for (String string : children) {  
    16.             System.out.print(string+" ");  
    17.         }  
    18.     }  
    19.   
    20.     public static List<String> getChildren(String data) {  
    21.         List<String> list = new ArrayList<String>();  
    22.         for (int i = 1; i < data.length(); i++) {  
    23.             for (int j = data.length() - i + 1; j > 0; j--) {  
    24.                 String newStr = data.substring(data.length() - j - i + 1,  
    25.                         data.length() - j + 1);  
    26. //              System.out.println("----" + newStr);  
    27.                 if (!list.contains(newStr)) {  
    28.                     list.add(newStr);  
    29.                 }  
    30.             }  
    31.         }  
    32.         return list;  
    33.     }  
    34. }  

    21. 程序实现目标: 输入一个字符,将字符转换为小写,将其对应的ASCII值加5后,输出结果。

    程序要求:若其值加5后的字符值大于'z',将其转换成从a开始的字符。

    输入:‘A

    输出:‘f

    [java] view plain copy
    1. public class Trans {  
    2.   
    3.     public static void main(String[] args) {  
    4.         char input = 'X';  
    5.         char output = trans(input);  
    6.         System.out.println(output);  
    7.     }  
    8.     /** 
    9.      * 将大写字母转换成小写字母再加5 
    10.      * @param input 
    11.      * @return 
    12.      */  
    13.     private static char trans(char input) {  
    14.         // 将大写转为小写  
    15.         char result = (char) (Character.toLowerCase(input) + 5);  
    16.         if (result>'z') {  
    17.             result = (char) (result-26);  
    18.         }  
    19.         return result;  
    20.     }  
    21.   
    22. }  

    22. 要求:将一个二维数组进行逆序,逆序后所有的元素行列不定,进行随机排列

    ①先把数组每一行逆序

    ②再把逆序后每一行进行随机排列

    如:{{4,3,32,5},{1,2,3,4},{9,6,5,4}};

    ⇒4 6 5 9 
     3 4 2 1 
     5 4 32 3

    [java] view plain copy
    1. import java.util.Arrays;  
    2. import java.util.Random;  
    3.   
    4. public class ArraySort {  
    5.   
    6.     /** 
    7.      * @param args 
    8.      */  
    9.     public static void main(String[] args) {  
    10.         int input[][] = { { 43325 }, { 1234 }, { 9654 } };  
    11.         int output[][] = arraySort(input);  
    12.         for (int i = 0; i < output.length; i++) {  
    13.             System.out.println(Arrays.toString(input[i]));  
    14.         }  
    15.     }  
    16.   
    17.     /** 
    18.      * ①先把数组每一行逆序 ②再把逆序后每一行进行随机排列 
    19.      *  
    20.      * @param input 
    21.      * @return 
    22.      */  
    23.     private static int[][] arraySort(int[][] input) {  
    24.         int[] temp = null;  
    25.         for (int i = 0; i <= input.length / 2; i++) {  
    26.             // 先把数组每一行逆序  
    27.             temp = input[i];  
    28.             input[i] = input[input.length - 1 - i];  
    29.             input[input.length - 1 - i] = temp;  
    30.   
    31.         }  
    32.         for (int i = 0; i < input.length; i++) {  
    33.             int tmp = 0;  
    34.             for (int j = 0; j < input[i].length; j++) {  
    35.                 // 产生[0-len)的数  
    36.                 int n = (int) (Math.random()*(input[i].length));  
    37.                 int m = (int) (Math.random()*(input[i].length));  
    38.                 // 随机交换数据  
    39.                 tmp = input[i][m];  
    40.                 input[i][m] = input[i][n];  
    41.                 input[i][n] = tmp;  
    42.             }  
    43.         }  
    44.         return input;  
    45.     }  
    46.   
    47. }  

    24. 分解质因数

    eg:输入 28

    输出 2*2*7

    [java] view plain copy
    1. public class Test {  
    2.   
    3.     /** 
    4.      *  
    5.      * @param args 
    6.      */  
    7.     public static void main(String[] args) {  
    8.         int m = 28;  
    9.         String result = perenum(m);  
    10.         System.out.println("因数--" + result);  
    11.     }  
    12.   
    13.     private static String perenum(int m) {  
    14.         StringBuffer sb = new StringBuffer();  
    15.         int tmp = m;  
    16.         int i = 0;  
    17.         while (true) {  
    18.             for (i = 2; i <= tmp; i++) {  
    19.                 if (tmp % i == 0) {  
    20.                     tmp = tmp / i;  
    21.                     sb.append(i + "*");  
    22.                     break;  
    23.                 }  
    24.             }  
    25.             if (tmp == 1){  
    26.                 break;  
    27.             }  
    28.         }  
    29.         // 删除最后一个字符  
    30.         String result = sb.toString().substring(0, sb.toString().length()-1);  
    31.         return result;  
    32.     }  
    33. }  

    26. 二维数组转置

    例:1 2 3

        4 5 6

    转置

        1 4

        2 5

       3 6


    [java] view plain copy
    1. package com.zjp.huawei;  
    2.   
    3. import java.util.Arrays;  
    4.   
    5. /** 
    6.  * 二维数组倒置 
    7.  *  二维数组转置 
    8. 例:1 2 3 
    9.     4 5 6 
    10. 转置 
    11.     1 4 
    12.     2 5 
    13.    3 6 
    14.  * @author cqu_zhu 
    15.  * 
    16.  */  
    17. public class TransArray {  
    18.   
    19.     /** 
    20.      * @param args 
    21.      */  
    22.     public static void main(String[] args) {  
    23.         int [][] input = {{1,2,3},{4,5,6}};  
    24.         int [][] output = inversionArray(input);  
    25.         for (int i = 0; i < output.length; i++) {  
    26.             for (int j = 0; j < output[i].length; j++) {  
    27.                 System.out.print(output[i][j]+" ");  
    28.             }  
    29.             System.out.println();  
    30.         }  
    31.     }  
    32.   
    33.     private static int[][] inversionArray(int[][] input) {  
    34.         int result[][] = new int[input[0].length][input.length];  
    35.         for (int i = 0; i < input.length; i++) {  
    36.             for (int j = 0; j < input[i].length; j++) {  
    37.                 result[j][i] = input[i][j];  
    38.             }  
    39.         }  
    40.         return result;  
    41.     }  
    42.   
    43. }  

    27. 功能描述:输入字符串,将该字符串中数字放到非数字的后面,并保持原有顺序不变。

    例如:h3a2p0p1y----------happy3201

    public String  childStr(String inputStr){

    }

    [java] view plain copy
    1. package com.zjp.huawei;  
    2.   
    3. import java.util.Scanner;  
    4.   
    5. /** 
    6.  * 输入字符串,将该字符串中数字放到非数字的后面,并保持原有顺序不变。 例如:h3a2p0p1y----------happy3201 
    7.  *  
    8.  * @author cqu_zhu 
    9.  *  
    10.  */  
    11. public class FindCharAndNum {  
    12.   
    13.     /** 
    14.      * @param args 
    15.      */  
    16.     public static void main(String[] args) {  
    17. //      String str = "h3a2p0p1y";  
    18.         Scanner in = new Scanner(System.in);  
    19.         System.out.println("请随机输入字母和字符串:");  
    20.         String str = in.nextLine();  
    21.         String reg = "^[0-9a-zA-Z]*$";  
    22.         in.close();  
    23.         if (!str.matches(reg)) {  
    24.             System.out.println("输入的字符串不符合要求");  
    25.             return;  
    26.         }  
    27.         String result = childStr(str);  
    28.         System.out.println(result);  
    29.     }  
    30.     public static String  childStr(String inputStr){  
    31.         StringBuffer charBuffer = new StringBuffer();  
    32.         StringBuffer numBuffer = new StringBuffer();  
    33.         char[] array = inputStr.toCharArray();  
    34.         // 字母的正则表达式  
    35.         String reg = "^[a-zA-Z]*$";  
    36.         String reg2 = "^[0-9]*$";  
    37.         for (int i = 0; i < array.length; i++) {  
    38.             // 如果是字母  
    39.             if (String.valueOf(array[i]).matches(reg)) {  
    40.                 charBuffer.append(array[i]);  
    41.             }else if(String.valueOf(array[i]).matches(reg2)){  
    42.                 numBuffer.append(array[i]);  
    43.             }  
    44.         }  
    45.         return charBuffer.toString()+numBuffer.toString();  
    46.     }  
    47. }  

    28. 输入一个身份证号码(15位和18位)和一个年份,计算现在的年龄(忽略非法参数)

    eg610618199001020065  2011

    输出:21

    [java] view plain copy
    1. package com.zjp.huawei;  
    2.   
    3. /** 
    4.  * 输入一个身份证号码(15位和18位)和一个年份,计算现在的年龄(忽略非法参数) eg:610618199001020065 2011 输出:21 
    5.  *  
    6.  * @author cqu_zhu 
    7.  *  
    8.  */  
    9. public class Demo28 {  
    10.   
    11.     /** 
    12.      * @param args 
    13.      */  
    14.     public static void main(String[] args) {  
    15. //      String ID = "610618199001020065";  
    16.         String ID ="110105710923582";  
    17.         int year = 2015;  
    18.         int age = countAge(ID,year);  
    19.         System.out.println("年龄---" + age);  
    20.     }  
    21.   
    22.     private static int countAge(String ID, int year) {  
    23.         String date = "";  
    24.         //7-12位出生年月日,比如670401代表1967年4月1日  
    25.         if (ID.length() == 15) {  
    26.             String d = ID.substring(68);  
    27.             date = "19"+d;  
    28.         }else if(ID.length() ==18){  
    29.             date = ID.substring(6,10);  
    30.         }  
    31.         int age = year -Integer.parseInt(date);  
    32.         System.out.println(date);  
    33.         return age;  
    34.     }  
    35. }  
    29. 输入一个字符串,如果是小写则转换成相应的大写字母的后五位,如果是VWXYZ则转换成abcde,其他的都不变,例如:“aDsR154+-/.”则应该输出为“FDXR154+-/.
    [java] view plain copy
    1. package com.zjp.huawei;  
    2.   
    3. /** 
    4.  * 输入一个字符串,如果是小写则转换成相应的大写字母的后五位,如果是VWXYZ则转换成abcde,其他的都不变,例如:“aDsR154+-/.”则应该输出为“ 
    5.  * FDXR154+-/.” 
    6.  *  
    7.  * @author cqu_zhu 
    8.  *  
    9.  */  
    10. public class Demo29 {  
    11.   
    12.     public static void main(String[] args) {  
    13.         String str = "aDsR154+-/.";  
    14.         String reslut = parseStr(str);  
    15.         System.out.println("转换后的字符串---" + reslut);  
    16.     }  
    17.   
    18.     private static String parseStr(String str) {  
    19.         char[] array = str.toCharArray();  
    20.         String reg = "^[a-z]*$";  
    21.         for (int i = 0; i < array.length; i++) {  
    22.             if (String.valueOf(array[i]).matches(reg)) {  
    23.                 // 把小写转换为大写,并后退5位  
    24.                 array[i] = (char) (Character.toUpperCase(array[i]) + 5);  
    25.                 if (array[i]>'Z') {  
    26.                     array[i]= (char) (array[i]-26);  
    27.                 }  
    28.             }  
    29.         }  
    30.         StringBuffer buffer = new StringBuffer();  
    31.         for (int i = 0; i < array.length; i++) {  
    32.             buffer.append(array[i]);  
    33.         }  
    34.         return buffer.toString();  
    35.     }  
    36.   
    37. }  

    31. 删除一个字符串里出现次数最多的子字符串

    如果有多个出现次数相同的并且出现次数最多则将多个全部删除比如abbccd得到结果 ad

    [java] view plain copy
    1. package com.zjp.huawei;  
    2.   
    3. import java.util.HashMap;  
    4. import java.util.Map;  
    5.   
    6. /** 
    7.  * 删除一个字符串里出现次数最多的子字符串 
    8. 如果有多个出现次数相同的并且出现次数最多则将多个全部删除比如abbccd得到结果 ad 
    9.  * @author cqu_zhu 
    10.  * 
    11.  */  
    12. public class Demo30 {  
    13.   
    14.     /** 
    15.      * @param args 
    16.      */  
    17.     public static void main(String[] args) {  
    18.         String str = "abbccdeefff";  
    19.         String result = deleteMaxChar(str);  
    20.         System.out.println(result);  
    21.     }  
    22.     /** 
    23.      * 删除字符串字符出现次数最多的字符 
    24.      * @param str 
    25.      * @return 
    26.      */  
    27.     private static String deleteMaxChar(String str) {  
    28.         char[] array = str.toCharArray();  
    29.         Map<Character,Integer> map = new HashMap<Character,Integer>();  
    30.         for (int i = 0; i < array.length; i++) {  
    31.             if(!map.containsKey(array[i])){  
    32.                 map.put(array[i], 1);  
    33.             }else {  
    34.                 map.put(array[i], map.get(array[i])+1);  
    35.             }  
    36.         }  
    37.         int m =0;  
    38.         // 得出字符最大值  
    39.         for(Map.Entry<Character, Integer> entry :map.entrySet()){  
    40.             if (entry.getValue() > m) {  
    41.                 m = entry.getValue();  
    42.             }  
    43.         }  
    44.         // 根据字符最大值得到相应的字符  
    45.         for(Map.Entry<Character, Integer> entry :map.entrySet()){  
    46.             if (entry.getValue() ==m) {  
    47.                 String replace = str.replace(String.valueOf(entry.getKey()), "");  
    48.                 str = replace;  
    49.             }  
    50.         }  
    51.         return str;  
    52.     }  
    53.   
    54. }  

    32. 判断字符串首字母就大写,非首字母小写

    1、如输入 Good 返回 TRUE

    2、过程中不需要输出任何IO流。

    [java] view plain copy
    1. package com.zjp.huawei;  
    2.   
    3. /** 
    4.  * 32. 判断字符串首字母就大写,非首字母小写 1、如输入 Good 返回 TRUE 2、过程中不需要输出任何IO流。 
    5.  *  
    6.  * @author cqu_zhu 
    7.  *  
    8.  */  
    9. public class Demo32 {  
    10.   
    11.     /** 
    12.      * @param args 
    13.      */  
    14.     public static void main(String[] args) {  
    15.         String str = "Good";  
    16.         String result = fristChar(str);  
    17.         System.out.println(result);  
    18.     }  
    19.   
    20.     private static String fristChar(String str) {  
    21.         String result = "";  
    22.         String reg = "^[A-Z]*$";  
    23.         char[] array = str.toCharArray();  
    24.         if (String.valueOf(array[0]).matches(reg)) {  
    25.             result ="TRUE";  
    26.         }else {  
    27.             result ="FALSE";  
    28.         }  
    29.         return result;  
    30.     }  
    31.   
    32. }  

    33. 将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I

    所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符

    [java] view plain copy
    1. package com.zjp.huawei;  
    2.   
    3. import java.util.Arrays;  
    4.   
    5. /** 
    6.  * 33. 将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I” 
    7.  * 所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符 
    8.  *  
    9.  * @author cqu_zhu 
    10.  *  
    11.  */  
    12. public class Demo33 {  
    13.   
    14.     /** 
    15.      * @param args 
    16.      */  
    17.     public static void main(String[] args) {  
    18.         String str = "I am a boy";  
    19.         String result = inversionString(str);  
    20.         System.out.println(result);  
    21.     }  
    22.   
    23.     private static String inversionString(String str) {  
    24.         String[] splitStr= str.split(" ");  
    25.         String[] newStr = new String[splitStr.length];  
    26.         for (int i = 0; i < splitStr.length; i++) {  
    27.             newStr[splitStr.length -i-1] = splitStr[i];  
    28.         }  
    29.         StringBuffer result = new StringBuffer();  
    30.         for (int i = 0; i < splitStr.length; i++) {  
    31.             result.append(newStr[i] + " ");  
    32.         }  
    33.         return result.toString();  
    34.     }  
    35.   
    36. }  

    34. 题目背景

    写出一个程序,接受一个浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整

    接口

    int round(double d)

    举例

    -4.5 四舍五入的结果是-4

    4.4 四舍五入的结果是4

    [java] view plain copy
    1. package com.zjp.huawei;  
    2.   
    3. import java.util.Arrays;  
    4.   
    5. /** 
    6.  * 33. 将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I” 
    7.  * 所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符 
    8.  *  
    9.  * @author cqu_zhu 
    10.  *  
    11.  */  
    12. public class Demo34 {  
    13.   
    14.     /** 
    15.      * @param args 
    16.      */  
    17.     public static void main(String[] args) {  
    18.         double d = -3.65;  
    19.         int result = round(d);  
    20.         System.out.println("返回的结果--" + result);  
    21.     }  
    22.   
    23.     private static int round(double d) {  
    24.         String str = String.valueOf(d);  
    25.         String subStr = str.substring(str.indexOf(".") + 1,  
    26.                 str.indexOf(".") + 2);  
    27.         int i = Integer.parseInt(subStr);  
    28.         int reg = 0;  
    29.         if (i >= 5) {  
    30.             // 返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。  
    31.             reg = (int) Math.ceil(d);  
    32.         } else {  
    33.             // 返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。  
    34.             reg = (int) Math.floor(d);  
    35.         }  
    36.         return reg;  
    37.     }  
    38.   
    39. }  

    35.数列求和

    编写程序,输入一个正整数n,求下列算式的值。要求定义和调用函数fact(k)计算k的阶乘,函数返回值的类型是double

    1+1/2!+ .... +1/n!

    输出保留5位小数。

    下面是一些合理的表达式的例子:

    Input         5                

    Output      1.71667   

    [java] view plain copy
    1. package com.zjp.huawei;  
    2.   
    3.   
    4. /** 
    5.  * 编写程序,输入一个正整数n,求下列算式的值。要求定义和调用函数fact(k)计算k的阶乘,函数返回值的类型是double。 1+1/2!+ .... 
    6.  * +1/n! 输出保留5位小数。 下面是一些合理的表达式的例子: Input 5 Output 1.71667 
    7.  *  
    8.  * @author cqu_zhu 
    9.  *  
    10.  */  
    11. public class Demo35 {  
    12.   
    13.     /** 
    14.      * @param args 
    15.      */  
    16.     public static void main(String[] args) {  
    17.         int k = 5;  
    18.         double result = result(k);  
    19.         if (result>1.5) {  
    20.             // 保留5位有效数字  
    21.             String str = String.valueOf(result);  
    22.             String reg = str.substring(str.indexOf(".")+6, str.indexOf(".")+7);  
    23.             String m = str.substring(str.indexOf(".")+1, str.indexOf(".")+6);  
    24.             String in = str.substring(str.indexOf(".")-1, str.indexOf(".")+1);  
    25.             int n = 0;  
    26.             if (Integer.parseInt(reg)>=5) {  
    27.                 n = Integer.parseInt(m)+1;  
    28.             }else {  
    29.                 n = Integer.parseInt(m);  
    30.             }  
    31.             System.out.println("---" + in + n);  
    32.         }else {  
    33.             System.out.println("---" + result);  
    34.         }  
    35.     }  
    36.     /** 
    37.      * 求阶乘的倒数 
    38.      * @param k 
    39.      * @return 
    40.      */  
    41.     private static double result(int k){  
    42.         double d = 0;  
    43.         for (int i = 1; i <= k; i++) {  
    44.             d +=(double)1/fact(i);  
    45.         }  
    46.         return d;  
    47.     }  
    48.     /** 
    49.      * 计算k的阶乘 
    50.      * @param i 
    51.      * @return 
    52.      */  
    53.     private static int fact(int k) {  
    54.         int i = 1;  
    55.         for (int j = 1; j <= k; j++) {  
    56.             i =j*i;  
    57.         }  
    58.         return i;  
    59.     }  
    60.   
    61. }  

    36. 计算整数各个数位之和 

    描述要求使用递归实现,计算整数各个数位之和。

    举例: 123 --> 1+2+3 = 6

    运行时间限制无限制 

    内存限制无限制 

    输入: 0xff ff ff ff以内的整数

    输出: NA

    样例输入: 123 

    样例输出: 6 

    [java] view plain copy
    1. package com.zjp.huawei;  
    2.   
    3. /** 
    4.  * 计算整数各个数位之和 描述: 要求使用递归实现,计算整数各个数位之和。 举例: 123 --> 1+2+3 = 6 运行时间限制: 无限制 内存限制: 
    5.  * 无限制 输入: 0xff ff ff ff以内的整数 输出: NA 样例输入: 123 样例输出: 6 
    6.  *  
    7.  * @author cqu_zhu 
    8.  *  
    9.  */  
    10. public class Demo36 {  
    11.   
    12.     /** 
    13.      * @param args 
    14.      */  
    15.     public static void main(String[] args) {  
    16.         int num = 1234351363;  
    17.         int result = bitSum(num);  
    18.         System.out.println("各个位相加得到的和--" + result);  
    19.     }  
    20.   
    21.     /** 
    22.      * 递归求各个各个数位之和 
    23.      *  
    24.      * @param k 
    25.      * @return 
    26.      */  
    27.     private static int bitSum(int num) {  
    28.         int tmp = 0;  
    29.         if (num > 10) {  
    30.             tmp += num % 10 + bitSum(num / 10);  
    31.         } else {  
    32.             tmp = num;  
    33.         }  
    34.         return tmp;  
    35.     }  
    36.   
    37. }  

    37.提取不重复的整数 

    描述输入一个int32位整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。

    运行时间限制: 10 Sec 

    内存限制无限制 

    输入整数,如9876673

    注意:

    1、整数最后的0,请忽略,例如:输入1750,输出:571

    2、负数,保留'-'在前面,例如:输入-175,输出:-571

    输出整数,如37689

    样例输入: 9876673 

    样例输出: 37689  

    [java] view plain copy
    1. package com.zjp.huawei;  
    2.   
    3. import java.util.ArrayList;  
    4. import java.util.Arrays;  
    5. import java.util.List;  
    6.   
    7. /** 
    8.  * 输入一个int型32位整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。 
    9.  * @author cqu_zhu 
    10.  * 
    11.  */  
    12. public class Demo37 {  
    13.   
    14.     /** 
    15.      * @param args 
    16.      */  
    17.     public static void main(String[] args) {  
    18.         int num = -9876673;  
    19.         if (num <0) {  
    20.             int abs = Math.abs(num);  
    21.             int result = getConvertInt(abs);  
    22.             System.out.println("-" + result);  
    23.         }else {  
    24.             int result = getConvertInt(num);  
    25.             System.out.println(String.valueOf(result));  
    26.         }  
    27.     }  
    28.   
    29.     private static int getConvertInt(int num) {  
    30.         String str = String.valueOf(num);  
    31.         char[] array = str.toCharArray();  
    32.         List<Character> list = new ArrayList<Character>();  
    33.         for (int i = 0; i < array.length; i++) {  
    34.             if (!list.contains(array[i])) {  
    35.                 list.add(array[i]);  
    36.             }  
    37.         }  
    38.         List<Character> newList = new ArrayList<Character>();  
    39.         for (int i = 0; i <list.size(); i++) {  
    40.             newList.add(list.get(list.size()-1-i));  
    41.         }  
    42.         StringBuffer buffer = new StringBuffer();  
    43.         for (Character character : newList) {  
    44.             buffer.append(character);  
    45.         }  
    46.         return Integer.parseInt(buffer.toString());  
    47.     }  
    48.   
    49. }  

    原址传送门:http://blog.csdn.net/taotaofu/article/details/54293726

    展开全文
  • java练习题(带答案)

    2020-07-30 23:32:12
    这是java的练习题,分享一下!
  • Java日常练习题

    2020-09-15 19:08:21
    要求每个方法必须有注释 1、循环打印出字符串“中华人民共和国”每个汉字 String str = “中华人民共和国”; //定义一个字符串 for(int i=0;i<str.length();i++){ char ch = str.charAt(i); ...

    要求每个方法必须有注释

    1、循环打印出字符串“中华人民共和国”每个汉字
    String str = “中华人民共和国”; //定义一个字符串
    for(int i=0;i<str.length();i++){
    char ch = str.charAt(i);
    System.out.println(ch);
    }
    2、现在字符串“123” 转换其为整数型,并计算与200的和
    3、现有字符串“12.3” 转换为双精度型,并计算与20.21的和
    4、把整数型的10转换为字符串,并与“个中国人”相连接,并打印出来
    5、键盘输入数字并判断与22是否相等,如果相等则打印“您输入正确”,否则输出“你输入错误”
    6、键盘输入汉字并按空格进行切分,打印输出
    例如:输入"中国 人民 共和" 则按空格进行切分后分别打印出”中国“ “人民” “共和”
    这块注意要点:
    (1)代码 Scanner in =new Scanner(System.in);
    String c = in.next(); 可以接收汉字
    (int b=in.nextInt(); 可以接收数字)
    (2)写代码时要注意如果没有空格时代码的兼容性问题
    7、现有字符串“云南高黎贡山国家级自然保护区的工作人员” 打印“国家”所在字符串的位置,并截取其后面的所有字符
    8、用户登录时需要用户输入验证码才能登录,现在验证码为“ABcD” ,如何进行判断用户输入验证码的正确性。
    注意要点:验证码是不区分大小的
    9、现在有几个标题
    “hive离线数据库” “hadoop优化课程” “友盟网大数据系统” “大数据shell脚本”
    查找标题中包含“大数据” 的标题,并打印出来
    10、任意一段文字查找关键字所在的所有位置
    替换:替换所有文章中的某个汉字
    11、下面为菜单
    首页
    视频课程
    面试集锦
    编程教程
    新闻资讯
    名师专区
    VIP专区
    想调整“视频课程” 与 “名师专区”位置,如何操作

    12、计算1-100当中能5整除但不能被10整除的数的乘积
    13、计算1-100当中能被3整除但不能被12整除的数的和
    14、计算1-100所有数据和,但不包含20
    15、当前有1-100的数据,但仅计算1-10的数据的和
    用两种方法计算,其中一种方法需要用到break
    16、用while语句计算1到100的和
    17、当前班里有5个人,总分分别为80 70 65 90 求出
    分数最大的委任为”班长“ 分数最低的为“普通学生”

    自己写的答案会有一些错误 帮忙纠正哈
    hh
    package day6;

    import java.security.spec.RSAOtherPrimeInfo;
    import java.util.Scanner;

    public class StringTest2 {
    public static void main(String[] args) {

        wu();
    }
    
    
    /**
     * 分别打印中华人民共和国
     */
    
    public static void one() {
        String one = "中华人民共和国";
        for (int i = 0; i < one.length(); i++) {
            char n = one.charAt(i);
            System.out.println(n);
        }
    }
    
    /**
     * 现在字符串“123” 转换其为整数型,并计算与200的和
     */
    public static void two() {
        String i = "123";
        int one = Integer.parseInt(i);
        System.out.println(one + 200);
    }
    
    /**
     * 现有字符串“12.3” 转换为双精度型,并计算与20.21的和
     */
    public static void doubleSum() {
        String n = "12.3";
        double one = Double.parseDouble(n);
        System.out.println(one);
        double i = one + 20.21;
        System.out.println(i);
    
    }
    
    /**
     * 把整数型的10转换为字符串,并与“个中国人”相连接,并打印出来
     */
    public static void lianJie() {
        int i = 10;
        String n = String.valueOf(i);
        //System.out.println(n);
        System.out.println(n + "个中国人");
    }
    
    /**
     * 键盘输入数字并判断与22是否相等,如果相等则打印“您输入正确”,否则输出“你输入错误”
     */
    public static void pangDuan() {
        int a = 22;
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入一个整数:");
        int b = sc.nextInt();
        if (b == a) {
            System.out.println("您输入正确");
        } else {
            System.out.println("您输入错误");
        }
    }
    
    /**
     * 键盘输入汉字并按空格进行切分,打印输出
     */
    public static void daYin() {
        Scanner ch = new Scanner(System.in);
        System.out.print("请输入:");
        String c = ch.next();
        if (c == "#") {
    
        }
        String wx[] = c.split("#");
        for (int i = 0; i < wx.length; i++) {
            System.out.println(wx[i] + "\t");
    
       }
    }
    
    /**
     * 现有字符串“云南高黎贡山国家级自然保护区的工作人员” 打印“国家”所在字符串的位置,并截取其后面的所有字符
     */
    public static void ziFu() {
        String i = "云南高黎贡山国家级自然保护区的工作人员";
        int n = i.indexOf("山");
        System.out.println(n);
        String one = i.substring(8, 19);
        System.out.println(one);
    }
    
    /**
     * 用户登录时需要用户输入验证码才能登录,现在验证码为“ABcD” ,如何进行判断用户输入验证码的正确性。
     * 注意要点:验证码是不区分大小的
     */
    public static void dengLu() {
        String one = "ABcD";
        Scanner in = new Scanner(System.in);
        System.out.print("请输入:");
        String a = in.next();
        if (a.equalsIgnoreCase(one)) {
            System.out.println("输入正确");
        } else {
            System.out.println("输入错误");
        }
         }
    
    /**
     * 现在有几个标题
     * “hive离线数据库” “hadoop优化课程”  “友盟网大数据系统”   “大数据shell脚本”
     * 查找标题中包含“大数据” 的标题,并打印出来
     */
    public static void biaoTi() {
        String[] one = {"hive离线数据库", "hadoop优化课程", "友盟网大数据系统", "大数据shell脚本"};
        Scanner in = new Scanner(System.in);
        System.out.print("请输入查找内容:");
        String a = in.next();
        if (a == "友盟大数据系统" || a == "大数据shell脚本") {
            System.out.println();
    
        } else {
            System.out.println("查找内容没有");
        }
    
    
    }
    
    /**
     * 任意一段文字查找关键字所在的所有位置
     * 替换:替换所有文章中的某个汉字
     */
    public static void tiHuan() {
        String words = " 任意一段文字,查找,关键字,所在的,所有位置";
        int one = words.indexOf("在");
        System.out.println(one);
        String words2 = words.replaceAll(",", "?");
        System.out.println(words2);
    }
    
    /**
     * 下面为菜单
     * 首页
     * 视频课程
     * 面试集锦
     * 编程教程
     * 新闻资讯
     * 名师专区
     * VIP专区
     * 想调整“视频课程”  与 “名师专区”位置,如何操作
     */
    public static void caiDan() {
        int a = Integer.parseInt("首页");
        int b = Integer.parseInt("视频课程");
        int c = Integer.parseInt("面试集锦");
        int d = Integer.parseInt("编程教程");
        int e = Integer.parseInt("新闻资讯");
        int f = Integer.parseInt("名师专区");
        int g = Integer.parseInt("VIP专区");
    
    
    }
    
    /**
     * 计算1-100当中能5整除但不能被10整除的数的乘积
     */
    
    public static void wu() {
        int sum = 1;
        for (int i = 1; i <= 100; i++) {
            if (i % 5 == 0 && i % 10 != 0) {
                sum = sum * i;
                // System.out.println(sum);
            }
        }
        System.out.println(sum);
    }
    
    /**
     * 计算1-100当中能被3整除但不能被12整除的数的和
     */
    public static void he() {
        int sum = 0;
        for (int i = 1; i <= 100; i++) {
            if (i % 3 == 0 && i % 12 != 0) {
                sum = sum + i;
                // System.out.println(sum);
            }
            System.out.println(sum);
        }
    }
    
    /**
     * 计算1-100所有数据和,但不包含20
     */
    public static void baoKou() {
        int sum = 0;
        for (int i = 1; i <= 100; i++) {
            if (i == 20) {
                continue;
            }
            sum = sum + i;
        }
        System.out.println(sum);
    }
    
    /**
     * 当前有1-100的数据,但仅计算1-10的数据的和
     * 用两种方法计算,其中一种方法需要用到break
     */
    public static void shuJu() {
        int sum = 0;
        for (int i = 1; i <= 10; i++) {
            sum = sum + i;
        }
    
        System.out.println(sum);
    }
    
    public static void shuJU2() {
        int sum = 0;
        for (int i = 1; i <= 100; i++) {
            if (i == 11) {
                break;
            }
            sum = sum + i;
        }
        System.out.println(sum);
    }
    
    /**
     * 用while语句计算1到100的和
     */
    public static void while1() {
        int sum = 0;
        int i = 1;
        while (i <= 100) {
            sum = sum + i;
            i++;
        }
        System.out.println(sum);
    }
    
    /**
     * 当前班里有5个人,总分分别为80 70 65 90 求出
     * 分数最大的委任为”班长“  分数最低的为“普通学生”
     */
    public static void fenShu() {
        Scanner in = new Scanner(System.in);
        System.out.print("请输入一个整数:");
        int a = in.nextInt();
        if (a >= 90) {
            System.out.println("班长");
        } else if (a < 90 && a > 65) {
            System.out.println("学生");
        } else {
            System.out.println("普通学生");
        }
    
    }
    
    /**
     * 现在有几个标题
     * “hive离线数据库” “hadoop优化课程”  “友盟网大数据系统”   “大数据shell脚本”
     * 查找标题中包含“大数据” 的标题,并打印出来
     */
    public static void test() {
        String[] one = {"hive离线数据库", "hadoop优化课程", "友盟网大数据系统", "大数据shell脚本"};
        for (int i = 0; i < one.length; i++) {
            int a = one[i].indexOf("大数据");
            if (a != -1) {
                System.out.println(one[i]);
            } else {
                System.out.println("没有");
            }
        }
    }
    

    }

    展开全文
  • JAVA100道习题集合

    2020-07-30 23:30:17
    这是java习题练习题集合哈哈哈哈或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或
  • JAVA面试练习题总汇

    千次阅读 2020-02-01 15:11:30
    练习01 1、前言 今天看到一位博主说的话感触超多:既然我没有别人聪明,那就做个比别人更努力的人吧。但是后来才发现,这个世界有一种可怕的存在:他既比你聪明,又比你勤奋。这就很尴尬了!所以,我还有什么资格...
  • 我该用 Java 12 还是坚持 Java 11?

    万次阅读 多人点赞 2018-11-05 17:29:31
    搭上火箭也追不上的 Java 更新速度,不少程序员们大呼,我可不可以坚持使用 Java 8?!但是对于已使用到 LTS 版本的 Java 11 开发者,是否还有必要往上升...
  • 使用Eclipse开发JavaWEB项目前期准备新建server新建Java Web 工程编写Java编写JSP服务器执行jsp 前期准备 自行安装tomcat,注意tomcat和Java版本的匹配 新建server eclipse界面下端有如下Servers菜单 如果...
  • 简介、JRE安装、JDK安装、Eclipse安装、WindowBuilder安装