小弟跪求好的JAVA网站制作的菜鸟教程and书
哥们我这有很多网站,应该至少有一个适合你的 所属论坛: JAVA论坛 正文内容: java方面的: it人资讯交流网 http://www.it315.org 这个网站是我最近才发现的,虽然内容不多,但是提供的相关java工具挺齐全。还有就是里面提供了java教学视频录象的免费下载,好像一两周更换一段。
个人觉得挺适合初学者的,尤其是那个classpath的设置,讲的很透彻,大家有空可以看一看。
java官方站点(英文) http://java.sun.com 要想了解最新的java动态,下载最新的java相关,比如j2se、j2ee、j2se的最新jdk版本就来这里吧。 java中文站 http://www.java-cn.com 这个可能大家都知道,不用说了,他提供的java资源是最丰富的。注册论坛是免费的,还送积分,用积分可以下载软件和电子书等,如果积分用完了,就需要自己发表一些文章来赚新的积分。 中文java网站 http://www.cn-java.com 跟上面站点类似的一个站,宗旨就是:为java爱好者服务。
值得一看! 锋网 http://www.ijsp.net/tech/book/index.jsp 综合性的java网站,内含“下载中心”、“教程教学”等栏目。 java动力 http://eww.cn 网站的内容可以,但是最为出色的是它所运用的flash技术,我就不在这里多说了,大家去看看就知道了,一个字“酷”!!! vc方面的: vc知识库 http://www.vckbase.com 这个网站就不用多说了,学习vc必去之地。网站专门提供了免费的ftp下载,好东东巨多! vc之路 http://www.vcroad.com 综合软件开发网站,以vc为主。
“资源中心”有许多值得下载的东东。 visual c++/mfc开发指南 http://www.vchelp.net 以讲述windows开发为主的站点,提供了最新的源代码,开发工具,开发资料,开发教程和对好的开发站点,开发工具,图书做介绍,同时为从事开发的朋友提供发布自己开发的软件,代码和工具场所。 c维拥? http://www.c-view.org/root/index.htm 最近发现的vc好站,书籍、软件、代码下载一应具全!!! 游戏开发: 风云工作室 http://member.netease.com/~cloudwu/2000/index.html 标点游戏制作 http://makegame.myetang.com/ 未来开发者 http://www.fdev.net/ 综合的: 中国软件网 http://www.csdn.net 中国最大的开发者网络,他之所以著名就是因为他的论坛,大家有空可以去看看,能下到很多不错的东东,另外也是交流学习的好地方。
Java计算两个日期时间相差几天,几小时,几分钟等
思路是先计算两个日期相差的毫秒数,然后分别根据每天的毫秒数、每小时的毫秒数、每分钟的毫秒数来计算相差几天,几小时,几分钟。具体代码如下:
public static String getDatePoor(Date endDate, Date nowDate) {
long nd = 1000 * 24 * 60 * 60;//每天毫秒数
long nh = 1000 * 60 * 60;//每小时毫秒数
long nm = 1000 * 60;//每分钟毫秒数
long diff = endDate.getTime() – nowDate.getTime(); // 获得两个时间的毫秒时间差异
long day = diff / nd; // 计算差多少天
long hour = diff % nd / nh; // 计算差多少小时
long min = diff % nd % nh / nm; // 计算差多少分钟
return day + “天” + hour + “小时” + min + “分钟”;
}
然后做一个测试,调用这个方法测试一下:
可以看出两个日期时间相差几天,几小时,几分钟都可以算出来。
扩展资料:
Java使用以下三种方法来比较两个日期:
1、使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。
2、使用方法 before(),after() 和 equals()。例如,一个月的12号比18号早,则 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。
3、使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。
有哪些学习Java的网站?
1,B站:https://www.bilibili.com/
第一个网站肯定不必多说,就是我们经常逛的小破站,也就是所谓的b站,这个网站原本的定位是一个二次元动漫类的网站,可是走着走着越走越偏,b站自己也万万没想到自己会变成一个学习类的网站。对于我们程序员而言,这里有海量的编程类的学习资料,不管是什么类型的编程语言,编程技术,你几乎都可以在这里找到对应的视频教程。
而且最重要的是视频播放的时候不会有任何烦人的广告,几乎不会受到任何的打扰。
正因为如此,我现在也入驻了b站,成为了一名up主,在b站里面分享自己的一些开发经验和教训,希望能够给大家提供一些帮助。
2,CSDN:https://www.csdn.net/
CSDN是国内非常知名的技术交流社区,创建的时间也比较早,所以在国内也是非常的有影响力的。虽然说这个社区有一定的争议性,比如说盗版文章,盗版资料,但是CSDN还是有非常多优质的原创的文章和资料。对程序员来讲,经常来这里逛一逛也是会学到不少的知识的。
3,51自学网:https://www.51zxw.net/
现在教程类的网站也是非常多,比如说慕课网,腾讯课堂之类的。但为啥我偏偏推荐51自学网呢?简单来说我对他比较有感情。在2007年我刚上大学的时候,我就在51网上面去学一些乱七八糟的技术,当年很多我们专业课要用到软件还有相关的技术,我都是在里面学到的,所以我一直都对他比较有感情。
而且这个网站还是有不少编程类的学习视频,基本上你想学的技术在这上面都能够找得到,他的视频大部分都是免费的,但也有一些需要付费的,但是价格往往不是很高,平均下来一个视频才几毛钱,我觉得还是非常的良心。
4,LeetCode:https://leetcode-cn.com/
现在很多公司,尤其是一线大厂面试的时候,必考的一个项目就是算法。谈到算法就肯定会谈到LeetCode,他是一个非常知名的刷算法的网站,里面有大量的算法题目,如果你能够把这些算法题都刷完,那么你的算法水平提升肯定不是一个档次,而且他每道题后面都会有相应的评论与题解,如果你不会做的话,在这里可以找到灵感。
他的主站是美国版的,但也有中文版的,我比较推荐说中文版的,因为中文版会根据我们国内的情况增设一些知名企业的面试题,这对于我们面试的时候会非常有帮助。
5,GitHub:https://github.com/
作为一名程序员,如果你没有听说过GitHub,那你肯定不是一名合格的程序员,GitHub上面托管了大量的优秀项目,比如说Linux内核源码及Git本身的源码,都托管在这上面。在GitHub上面你可以通过主题,榜单等方式找到自己感兴趣的项目,通过多做一些项目,你就可以很快的提升自己的技术,从而进入到自己心仪的公司。
6,菜鸟教程:https://www.runoob.com/
菜鸟教程提供了编程的基础技术教程,介绍了Java,Python,Ruby,php,MySQL等各种编程远的基础知识。我们从他的主页面看过来,教程真的是非常的全面。同时这里面也提供了非常多的工具,甚至还提供了各种编程语言的在线工具,你甚至都不需要开启代码编写软件就可以直接运行代码,真的是非常的方便。
7,codecademy:https://www.codecademy.cn/
codecademy是一个免费的有趣的在线互动编程学习网站。
目前提供了html,css,php,javascript,Ruby,jQuery,Python等课程。他像玩游戏一样让你一关一关从易到难来完成学习,你可以每天利用碎片时间从零基础入门到掌握一门编程语言,相比大多数传统的学习方法实在是好太多了。用户在学习的时候只需要在命令行中输入正确的代码提交保存,就可以一关一关的完成整个学习过程。而且由于是分段式的学习,用户可以很快地拿起学习然后放下,整个学习过程不会有太大的时间压力。
8,coursera:https://www.coursera.org/
coursera是由吴恩达教授所创办的在线教育网站,提供了大规模开方式线上课程,他们与190多所顶尖大学和公司合作,提供了超过2400门的优质课程,包括商务,计算机科学,数据科学,语言学习等多方面的讲座与视频。当然他们也提供一些付费的项目,但是价格还是比较公道的。除此之外,你只要完成课程并通过测试,你就能够拿到相应的证书,这些证书没啥用,但是是对你学习的一种肯定,大家有兴趣的话可以去学一学。
9,stack overflow:https://stackoverflow.com/
stack overflow是一个程序员问答平台,你有程序员相关的问题都可以在这里面搜索并得到比较专业的回答,这里比某度专业很多,毕竟某度是一个中和性的搜索引擎,大家在搜索的时候尽量用英文,你如果用中文搜索的话可能不对得到太多的结果,而且很多专业直击要点的回答往往都是用全英文来写的。
所以大家一定要习惯用英文起获取自己想要的答案。
java问题
这里直接把s赋值给readContent是有问题的,问题点如下:
假设文件有两行
第一行
第二行
则读取循环两次,第一次s赋值给readContent,readContent的值为 “第一行”,然后又循环,读取第二行,再次赋值,则readContent就会变成 “第二行”,第一行的值就丢失了;
这里StringBuff的作用是把读取到的内容连接起来成为一个字符串;
不过这里的例子的确有问题,问题却不在StringBuffer上,而在 s 变量上,s中间两步是不必要的,循环内直接改成如下形式:
删除s.getBytes()和new String
另外,除了以上问题,来总结下这段代码的问题吧:
1、文件资源没有释放
2、在不涉及多线程的情况下,应使用StringBuilder类进行字符串拼接,而不是StringBuffer,因为StringBuilder更快(但是StringBuilder线程不安全,StringBuffer线程安全);
3、异常处理有问题,如果出现IO异常,就返回异常信息的字符串?那么如何区分这个字符串是发生了异常还是从文件中读取到的内容呢?这里不应该返回字符串,而是直接声明异常,有异常就向外抛,直到能处理的顶层程序处理。
基于以上几点,修改代码如下:
注意第27行,声明本方法可能抛出 IOException 异常,稍后主程序将进行处理。
另外注意第30行,创建InputStreamReader 的时候指定了文件编码为utf8,以避免乱码,你的文件如果存储的是其他编码类型,则会出现乱码。
调用代码如下:
getContent函数调用主程序
注意18行和21行,是分别处理正常情况和异常情况,当读取异常时,将会调用第21行,打印异常信息;
整体代码如下:
全部代码
接下来我们看看代码执行情况。
1、当我们要读的文件不存在时,执行结果如下:
我们要读的文件不存在时,抛出异常
看,当文件不存在时,抛出异常,并由异常处理程序捕获和打印,你可以看到具体哪一行代码出错[getContent(App.java:29)],说明在App.java 文件中的getContent方法,文件的29行出错。
小白如何学习Java?
首先零基础的你要了解什么是Java?有哪些优势?
1995年,Oak语言更名为Java语言(以下简称为Java)。Java的取名有一个趣闻:据说有一天,几位Java成员组的会员正在讨论给这个新的语言取什么名字,当时他们正在咖啡馆喝着Java(爪哇)咖啡。
有一个人灵机一动,说就叫Java,并得到了其他人的赞赏。
于是,Java这个名字就这样传开了。
Java应用如此广泛是因为Java具有多方面的优势。其特点如下:
(1)面向对象。Java自诞生之时就被设计成面向对象的语言,而C++语言是一种强制面向对象的语言。
面向对象可以说是Java最重要的特性,它不支持类似C语言那样的面向过程的程序设计技术。Java支持静态和动态风格的代码重用。
(2)跨平台。
对于Java程序,不管是Windows平台还是UNIX平台或是其他平台,它都适用。Java编辑器把Java源程序编译成与体系结构无关的字节码指令,只要安装了Java运行系统,Java程序就可在任意的处理器上运行。这些字节码指令由Java虚拟机来执行,Java虚拟机的解释器得到字节码后,对它进行转换,使之能够在不同的平台运行。
(3)直接支持分布式的网络应用。除了支持基本的语言功能,Java核心类库还包括一个支持HTTP、SMTP和FTP等基于TCP/IP协议的类库。因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。
在Java出现以前,为分布式环境尤其是Internet提供动态的内容无疑是一项非常宏伟、难以想象的任务,但Java的语言特性却使我们很容易地达到了这个目标。
(4)安全性和健壮性。Java致力于检查程序在编译和运行时的错误,类型检查帮助检查出许多开发早期出现的错误。Java支持自动内存管理,这不但让程序员减轻了许多负担,也减少了程序员犯错的机会。
Java自己操纵内存减少了内存出错的可能性。Java还能够检测数组边界,避免了覆盖数据的可能。在Java语言里,指针和释放内存等功能均被抛弃,从而避免了非法内存操作的危险。
接下来就看一下java的学习路线以及学习方法吧!
首先是学习路线:
第一阶段JavaEE基础:Java基础语法、面向对象、核心类库、集合、异常、IO、线程、JDK新特性
第二阶段JavaWeb开发:前端技术、数据库、JAVA数据库操作、软件服务器及服务器相关技术、动态网页JSP、AJAX
第三阶段Java高级框架:SpringMVC、MyBatis、Spring、MySQL高级、Linux&Redis&Nginx、Maven、中公MIS权限系统
第四阶段大型微服务分布式项目实战:SpringBoot、SpringCloud、Git、Dubbo、Zookeeper、AngularJS、Spring Security、BCrypt加密、FastDFS、分布式事务处理、Redis Cluster、Solr、SolrCloud、MongoDB简介、MyCat、Docker、Jenkins、大型电商实战、百战商城等
第五阶段项目设计分析:医疗管理项目
其次是java学习方法:
第一步:对于Java的基本认知
很多同学刚刚入门学习java,看书,或者看视频。
这个阶段是积累理论知识的时候,相对比较容易,一个小知识点,信息量少,跟着老师的思路走就可以。
Java零基础入门视频教程推荐:
Java300集零基础适合初学者视频教程_Java300集零基础教程_Java初学入门视频基础巩固教程
本套课程是由高淇老师开讲的Java300集! 为初学者而著! 适合准备入行开发的零基础员学习Java。基于最新JDK13、IDEA平台讲解的,视频中穿插多个实战项目。每一个知识点都讲解的通俗易懂,由浅入深。
不仅适用于零基础的初学者,有经验的程序员也可做巩固学习。
在这个阶段,很多同学学得很快,感觉编程好简单。
随着学习的深入,大多数同学会产生混乱。
为什么? 所有的技术背后都有原理,前面都有应用场景,不同应用场景有不同使用方法。 信息量逐级增加。
信息量逐级增大后,会有什么问题?
学到后面忘记前面。
新技术不断出现,感觉永远学不完。 丧失兴趣或信心。
第二步:理论知识学习
这一过程尤为重要,毕竟这是学习Java的关键,而且,这一过程对于系统化的要求更高,如何循序渐进,有方式有目的的学习,将是小白更加快速的学懂Java的关键。
理论知识阶段,更重要的是理解原理和规律, 知识点的细节记不住可后面查找。
学习方法更重要的是 交流讨论,理解和总结。 多问为什么是关键!
第三步、真实实训项目、培养实操能力
一个项目从0到1的过程才是最宝贵的,也是初学者提升最大的部分。 但从书本或者视频中,很难学习这个过程。
技术的应用能力换句话说是 技术的分解排序能力, 当遇到一个需求,该如下实现?
基本的思路是 把需求分解成原子操作。 原子操作代表开发当中的基本操作,也就是在知识点当中学到的,比如数据库操作,sql,框架的基本使用等等。
如果能把需求分解为原子操作序列,开发完成只是时间快慢的问题。往往刚刚开始学习编程的同学,不善于或者懒得去思考。
毕竟看视频是被动的,分析问题是主动思考。学习只是看看视频,本质上是思考的懒惰。
所以需要找大量的练习和项目案例进行实践!!!
生命是无止境的,学习不止,每天都“强迫”自己取得一点进步。
随着时间的流逝,成就将不可避免地出现。
菜鸟初学Java如何系统学习
对于很多想要进入互联网行业的人来说,如何开始学习Java编程呢?初学编程最重要的一步就是了解自己,静下心来考虑自己想要做什么,是否喜欢编程,是否喜欢Java,并且在学习的过程中,自己能否坚持和用心的学习下去。在学习的过程中最重要的就是喜欢,只有喜欢才能学好。
那么在学习的过程中需要做什么呢?下面昆明电脑培训为大家具体介绍。
一、学习前的准备
在学习Java前,最重要的是需要掌握学习Java的基础知识,学习计算机的技术和Java知识是密不可分的。首先就是安装JDK,解决安装JDK存在的问题,在安装过程中,可以在网络上面找一些相应的答案,多学习、多动脑思考,用心做好学习前的准备。
二、Java基础的学习
Java系统主要分为Java SE,Java EE和Java ME(分别是JDK 5.0,J2EE,J2EE和J2ME),Java SE是所有课程里面的基础。无论你做什么,基础都是非常重要的,所以如果你想进入Java领域,那么首先就是Java SE的学习。
三、Java EE的学习
学习Java SE之后,这个时候基本已经奠定了良好的基础。接下来,就是选择根据自己的喜好学习Java EE或Java ME。根据目前的情况,大多数人会选择Java EE。
学习Java EE,还需要选择一个编程工具,NetBeans、IDE或Eclipse,云南java培训建议在学习的过程中都可以尝试体验一下,最后选择一个适合自己的进行使用。
四、知识储备
在开始使用Java EE之后,由于您的开发需求不同,在学习过程中需要扩展您的知识及学习Spring,Hibernate和各种Web框架(例如Struts,JSF,Webwork或Tapestry)。需要保证技术和经验在一定程度上积累。
并且还需要考虑更高层次的知识,例如分析和设计。在学习过程中可以进一步了解UML,模式和其他相关知识。
在学习知识的过程中,不断的练习是非常重要的,俗话说熟能生巧,在学习任何知识最重要的都是多练习,如果只看书不做练习,那么云南IT培训认为想要掌握计算机知识是非常困难的,用心学习,掌握Java的开发技术。