当前位置:首页 » 编程语言 » thinkforjava

thinkforjava

发布时间: 2022-09-08 12:56:44

⑴ 新手想学java编程,推荐几本好的易懂的书

一.1:Java 2 编程详解---- Java是面向对象的、支持多线程的、体系结构独立的解释型动态语言,具有高度的安全怀、可移植性和代码可重用性,具有很高的运行效率,是目前软件中极为健壮的编程语言。Java2是SUN公司1998年12月发行的Java版本,它对前面的版本进行了完善和提高增加了基础类、二维图形接口类,媒体框架类和商业及Java Wallet等内容。本书较全地介绍了Java2的内容,并就部分内容与Java1。0和1。1版本作了对照讲解。本书是综合性的工具书,包含了Java编程语言的各方面的信息。如果读者不熟悉Java,使用这本书就很合适;如果读者已是Java专家,那么本书也将为您的编程宝典。

2:JAVA基本语法知识,基本类库:
《Thinking in Java》
《Core Java》
Java 程序员必读之基础篇
入门教材可以选用《21天学通Java 2(第3版)(专业参考版)》
原书名: Teach Yourself Java 2 in 21 days,Professional Reference Edition,Third Edition
作者: [美]Rogers Cadenhead,Laura Lemay
3:JAVA网络编程:《Java network programming and distribute computing》
4:JSP开发:《JSP技术手册》,《JSP应用技术开发》
5:JAVA和UML建模:《UML for Java Programmer》
6:设计模式:《Java与模式》

二.推荐Java学习书籍
--------------------------------------------------------------------------------
一、入门
《Java 2从入门到精通》- 推荐
《Thinking in Java》- 强烈推荐*
O’reilly的Java编程基础系列 - 参考*

二、进阶
《Java Cook Book》- 非常推荐* (包含了Java编程的Tips,适合当做手册来查阅)
《O’reilly-Java IO》- 推荐* (包含Java IO编程的各个方面)
《O’reilly-Database Programming with JDBC》- 推荐* (JDBC编程)
《O’reilly-Java Programming with Oracle JDBC》- 参考*

三、Java Web编程
《O’reilly-Java Server Pages》- 强烈推荐*
《O’reilly-Java Servlet Programming》- 非常推荐*
《O’reilly-Jakarta Struts》- 推荐* (Java Web编程的一个MVC实现框架Struts的书)

四、EJB编程
《J2EE应用与BEA Weblogic Server》- 强烈推荐
《Mastering EJB 2.0》- 非常推荐*
《Enterprise Java Bean》- 推荐*

五、Java XML编程
《O’reilly-Java and XML》- 推荐*
《O’reilly-Java and SOAP》- 参考* (Java的SOAP编程)

六、设计模式
《Core J2EE Patterns》- 强烈推荐* (J2EE设计模式,设计企业应用软件必备参考书)
《EJB Design Patterns》- 推荐*

七、其它
《O’reilly Ant - The Definitive Guide》- 推荐* (Ant是一种功能非常强大的Java工具)

Note:
强烈推荐书籍:建议购买,重点学习
非常推荐书籍:建议花时间学习
推荐书籍:在学有余力的情况下,建议学习
参考书籍:有兴趣的情况下学习

标明*号的书籍有电子版本

⑵ 应该怎样学习JAVA顺序是什么

不知道Java 学习顺序的话,我提供你一条学习线路图!

按照视频学习的过程中,学习方法也是很重要的!一定要记得勤记笔记,整理程思维导图,方便后续复习方便。

第一部分:JavaSE:Java语言最基本的一套库

学习JavaEE或JavaME之前,JavaSE是必学的。

* Java开发环境搭建

* Java基础语法

* 面向对象

* 数组

* 异常

* 集合

* 线程

* IO流

* 反射机制

* 注解Annotation

* 网络编程

第二部分:数据库 【MySQL + JDBC】

* 只要学习编程,数据库是一定要学习的,是一门公共的学科。

* java、C、python、C#等程序员都需要学习数据库。

* 数据库产品很多: MySQL、Oracle、SqlServer、DB2......

* 我们动力节点数据库课程包括:MySQL + Oracle

* Oracle:银行、政府使用oracle的较多。

* MySQL:互联网公司、一般企业使用MySQL较多。

* Oracle我们是提供视频的。课堂上不讲。

* 我们课堂上讲MySQL。

* Java语言链接数据库:JDBC

第三部分:WEB前端

* 系统结构:B/S【Browser/Server】 C/S【Client/Server】

* WEB是网站的意思。WEB前端是:网站当中的页面。

* WEB前端程序是运行在浏览器当中的。

* HTML5 + CSS3 + JavaScript(JS)

* WEB前端也有很多框架:

- jQuery

- Bootstrap

- Vue

- NodeJS

- AugularJS

- RectJS

- LayUI

- EasyUI

.....

第四部分:JavaWEB

* Servlet

* JSP

* AJAX(是JavaScript的一部分语法,专门做页面局部刷新)

第五部分:JavaWEB项目

* 做一个B/S结构的项目,将WEB前端和JavaWEB内容做一个整合练习。

* 其实到这里为止,所有的系统都可以做了。但是用的技术很Low。没有用框架。

⑶ 学java看什么书

建议你这样试试看:首先初学者看书学习Java是非常不明智的,因为技术性的书籍是非常难啃的,因为我做Java这块有十多年了,非常了解看书自学Java是多么没有效率,不适合初学者Java。你应该选择一套系统的Java学习教程,然后跟着教程走。书籍应该是当你会实际写程序后,然后你看技术书籍,这样就可以理解的更加深刻。而你直接看书是非常难懂的,最后直学个理论,不会实际应用。

  1. Head First Java教材,看起来都特别轻松,图文并茂,简单易懂,适合初学者选择。

这样做的好处:教程是专业人士进行知识点分解讲解的,然后在配上适合初学者学习的书籍,让你更加深刻的理解每一个知识点的用途。

如果自己没有好的Java学习教程,可以添加这个Java学习qun:前面是四九四,中间是八零一,后面是九三一。找管理员获取教程链接。

注意事项:

  1. 前期有人指导,不要想着都靠自己自学,要学会借力。

  2. 学习编程就是多练习,至少有三分之二的时间都要拿来写大量的代码。

  3. 掌握好学习方法技巧,学习编程非常讲究技巧,关于这点多跟有经验的人交流。

⑷ 按理说一个非抽象类实现了一个接口不应该实现这个接口全部的方法嘛可是在think in java实现Comparator

真是很细心,这个问题从来没有想过

Ojbect类中的equals

publicbooleanequals(Objectobj){
return(this==obj);
}

现在问题变成了为什么Comparator要有

booleanequals(Objectobj);

方法

请一定要记住实现了Comparator方法,最好不要覆盖equals方法

下面英文的大概意思是你覆盖了Comparator的equals方法最好是不要把这个类的相关逻辑掺和进来,因为一个普通的类覆盖了equals方法都会检查某些属性是否相等,但是比较器就应该比较比较器本身是否相等

In common java objects, we will decide two objects are equal by checking its one or more than one instance variables.

Form javaDoc Comparator

returntrue->thiscomparator.

Means we need to check for its business logic (This is what really makes two comparators objects equal)
Also from JavaDoc

Notethatitisalways*safenot*tooverrideObject.equals(Object).

Since the POJO class can have its own equals() which would check for some of its instance variables(Which makes it really unique). If we implement comparator interface in the same POJO class and provide the equals () for comparator then we cannot check equality for POJO class, vice versa. That is the reason it mentioned it's not to override equals().
As explained earlier this is to 'just to expand on the general contract of the method'. So that we would treat comparator equals() is different from POJO equals() .


下面是引用自另一篇文章:

The equals( ) method, shown here, tests whether an object equals the invoking comparator:

booleanequals(Objectobj)

obj is the object to be tested for equality. The method returns true if obj and the invoking object are both Comparator objects and use the same ordering. Otherwise, it returns false.

Overriding equals( ) is unnecessary, and most simple comparators will not do so.

如果覆盖了Comparator是比较他们都是比较器,并且是使用相同的比较策略,所以一般不要覆盖



再说了比较器本身的用途就是用来比较,某些模型不应该实现这个接口,为什么Comparator要麻烦的写出这个方法,是要告诉我们正确覆盖这个equals方法的方式,但是由于Object中已经有这个这个方法的实现了,所以一般实现Comparator是不需要覆盖这个equals方法的,覆盖也是没有意义的,所以thinking in java的作者就正确地没有覆盖这个可以不需要覆盖的方法

⑸ Java中HashSet不是说输出乱序的吗

Hash是无序的没错,但是谁跟你说是随机的呢?

有顺序一定不是随机的,但是没顺序也不一定就是随机的啊。

你应该去复习一下哈希表。
就知道为什么了。

每个元素的具体位置,是由元素的哈希值决定的。
你每次执行的时候,Set中的元素都是一样的。当然每个元素的哈希值是一样的,产生出来的哈希表也是一样的。这有什么问题吗?

-------------------------补充:
就算运行了也没有疑问啊?我估计你是在疑问为什么每次都是[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]吧。
这是当然了的。Integer的hashCode还是本身啊。所以当然是排序的。
你不能复习一下hash表吗?

你的书的例子有问题,或者是你的书比较老,运行在很古老版本的jdk上,反正现在是不可能出现你上面提到的结果的。

给你一个极端的例子。
你自己定义一个Integer类。

class MyInteger{
private Integer myInt;

public MyInteger(int i) {
myInt = i;
}
public int hashCode() {
return 1;
}

public int value(){
return myInt;
}

public boolean equals(Object obj) {
if(!(obj instanceof MyInteger))return false;
return myInt.equals(((MyInteger)obj).value());
}

public String toString(){
return myInt.toString();
}
}

你看保证跟你插入的顺序是一致的,因为hashCode我定死了是1.

⑹ 学习JAVA应该准备点什么

1. JAVA学习路线 1.1 基础语法及JAVA原理 基础语法和JAVA原理是地基,地基不牢靠,犹如沙地上建摩天大厦,是相当危险的。学习JAVA也是如此,必须要有扎实的基础,你才能在J2EE、J2ME领域游刃有余。参加SCJP(SUN公司认证的JAVA程序员)考试不失为一个好方法,原因之一是为了对得起你交的1200大洋考试费,你会更努力学习,原因之二是SCJP考试能够让你把基础打得很牢靠,它要求你跟JDK一样熟悉JAVA基础知识;但是你千万不要认为考过了SCJP就有多了不起,就能够获得软件公司的青睐,就能够获取高薪,这样的想法也是很危险的。获得"真正"的SCJP只能证明你的基础还过得去,但离实际开发还有很长的一段路要走。 1.2 OO思想的领悟 掌握了基础语法和JAVA程序运行原理后,我们就可以用JAVA语言实现面向对象的思想了。面向对象,是一种方法学;是独立于语言之外的编程思想;是CBD基于组件开发的基础;属于强势技术之一。当以后因工作需要转到别的面向对象语言的时候,你会感到特别的熟悉亲切,学起来像喝凉水这么简单。 使用面向对象的思想进行开发的基本过程是: ●调查收集需求。 ●建立用例模型。 ●从用例模型中识别分析类及类与类之间的静态动态关系,从而建立分析模型。 ●细化分析模型到设计模型。 ●用具体的技术去实现。 ●测试、部署、总结。 1.3 基本API的学习 进行软件开发的时候,并不是什么功能都需要我们去实现,也就是经典名言所说的"不需要重新发明轮子"。我们可以利用现成的类、组件、框架来搭建我们的应用,如SUN公司编写好了众多类实现一些底层功能,以及我们下载过来的JAR文件中包含的类,我们可以调用类中的方法来完成某些功能或继承它。那么这些类中究竟提供了哪些方法给我们使用?方法的参数个数及类型是?类的构造器需不需要参数?总不可能SUN公司的工程师打国际长途甚至飘洋过海来告诉你他编写的类该如何使用吧。他们只能提供文档给我们查看,JAVA DOC文档(参考文献4.4)就是这样的文档,它可以说是程序员与程序员交流的文档。 基本API指的是实现了一些底层功能的类,通用性较强的API,如字符串处理/输入输出等等。我们又把它成为类库。熟悉API的方法一是多查JAVA DOC文档(参考文献4.4),二是使用JBuilder/Eclipse等IDE的代码提示功能。 1.4 特定API的学习 JAVA介入的领域很广泛,不同的领域有不同的API,没有人熟悉所有的API,对一般人而言只是熟悉工作中要用到的API。如果你做界面开发,那么你需要学习Swing/AWT/SWT等API;如果你进行网络游戏开发,你需要深入了解网络API/多媒体API/2D3D等;如果你做WEB开发,就需要熟悉Servlet等API啦。总之,需要根据工作的需要或你的兴趣发展方向去选择学习特定的API。 1.5 开发工具的用法 在学习基础语法与基本的面向对象概念时,从锻炼语言熟练程度的角度考虑,我们推荐使用的工具是Editplus/JCreator+JDK,这时候不要急于上手JBuilder/Eclipse等集成开发环境,以免过于关注IDE的强大功能而分散对JAVA技术本身的注意力。过了这一阶段你就可以开始熟悉IDE了。 程序员日常工作包括很多活动,编辑、编译及构建、调试、单元测试、版本控制、维持模型与代码同步、文档的更新等等,几乎每一项活动都有专门的工具,如果独立使用这些工具的话,你将会很痛苦,你需要在堆满工具的任务栏上不断的切换,效率很低下,也很容易出错。在JBuilder、Eclipse等IDE中已经自动集成编辑器、编译器、调试器、单元测试工具JUnit、自动构建工具ANT、版本控制工具CVS、DOC文档生成与更新等等,甚至可以把UML建模工具也集成进去,又提供了丰富的向导帮助生成框架代码,让我们的开发变得更轻松。应该说IDE发展的趋势就是集成软件开发中要用到的几乎所有工具。 从开发效率的角度考虑,使用IDE是必经之路,也是从一个学生到一个职业程序员转变的里程碑。 JAVA开发使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等几种;而Eclipse、JBuilder占有的市场份额是最大的。JBuilder在近几年来一直是JAVA集成开发环境中的霸主,它是由备受程序员尊敬的Borland公司开发,在硝烟弥漫的JAVA IDE大战中,以其快速的版本更新击败IBM的Visual Age for JAVA等而成就一番伟业。IBM在Visual Age for JAVA上已经无利可图之下,干脆将之贡献给开源社区,成为Eclipse的前身,真所谓"柳暗花明又一村"。浴火重生的Eclipse以其开放式的插件扩展机制、免费开源获得广大程序员(包括几乎所有的骨灰级程序员)的青睐,极具发展潜力。 1.6 学习软件工程 对小型项目而言,你可能认为软件工程没太大的必要。随着项目的复杂性越来越高,软件工程的必要性才会体现出来。参见"软件开发学习路线"小节。 2. 学习要点 确立的学习路线之后,我们还需要总结一下JAVA的学习要点,这些要点在前文多多少少提到过,只是笔者觉得这些地方特别要注意才对它们进行汇总,不要嫌我婆婆妈妈啊。 2.1勤查API文档 当程序员编写好某些类,觉得很有成就感,想把它贡献给各位苦难的同行。这时候你要使用"javadoc"工具(包含在JDK中)生成标准的JAVA DOC文档,供同行使用。J2SE/J2EE/J2ME的DOC文档是程序员与程序员交流的工具,几乎人手一份,除了菜鸟之外。J2SE DOC文档官方下载地址: http://java.sun.com/j2se/1.5.0/download.jsp ,你可以到google搜索CHM版本下载。也可以在线查看: http://java.sun.com/j2se/1.5.0/docs/api/index.html 。 对待DOC文档要像毛主席语录,早上起床念一遍,吃饭睡觉前念一遍。 当需要某项功能的时候,你应该先查相应的DOC文档看看有没有现成的实现,有的话就不必劳神费心了直接用就可以了,找不到的时候才考虑自己实现。使用步骤一般如下: ●找特定的包,包一般根据功能组织。 ●找需要使用类,类命名规范的话我们由类的名字可猜出一二。 ●选择构造器,大多数使用类的方式是创建对象。 ●选择你需要的方法。 2.2 查书/google->写代码测试->查看源代码->请教别人 当我们遇到问题的时候该如何解决? 这时候不要急着问别人,太简单的问题,没经过思考的问题,别人会因此而瞧不起你。可以先找找书,到google中搜一下看看,绝大部分问题基本就解决了。而像"某些类/方法如何使用的问题",DOC文档就是答案。对某些知识点有疑惑是,写代码测试一下,会给你留下深刻的印象。而有的问题,你可能需要直接看API的源代码验证你的想法。万不得已才去请教别人。 2.3学习开源软件的设计思想 JAVA领域有许多源代码开放的工具、组件、框架,JUnit、ANT、Tomcat、Struts、Spring、Jive论坛、PetStore宠物店等等多如牛毛。这些可是前辈给我们留下的瑰宝呀。入宝山而空手归,你心甘吗?对这些工具、框架进行分析,领会其中的设计思想,有朝一日说不定你也能写一个XXX框架什么的,风光一把。分析开源软件其实是你提高技术、提高实战能力的便捷方法。 2.4 规范的重要性 没有规矩,不成方圆。这里的规范有两层含义。第一层含义是技术规范,多到 http://www.jcp.org 下载JSRXXX规范,多读规范,这是最权威准确最新的教材。第二层含义是编程规范,如果你使用了大量的独特算法,富有个性的变量及方法的命名方式;同时,没给程序作注释,以显示你的编程功底是多么的深厚。这样的代码别人看起来像天书,要理解谈何容易,更不用说维护了,必然会被无情地扫入垃圾堆。JAVA编码规范到此查看或下载 http://java.sun.com/docs/codeconv/ ,中文的也有,啊,还要问我在哪,请参考3.2.2节。 2.5 不局限于JAVA 很不幸,很幸运,要学习的东西还有很多。不幸的是因为要学的东西太多且多变,没时间陪老婆家人或女朋友,导致身心疲惫,严重者甚至导致抑郁症。幸运的是别人要抢你饭碗绝非易事,他们或她们需要付出很多才能达成心愿。 JAVA不要孤立地去学习,需要综合学习数据结构、OOP、软件工程、UML、网络编程、数据库技术等知识,用横向纵

⑺ 完全零基础学习JAVA用什么入门书籍

推荐一些对Java学习有用的经典书籍!

1、《thinkingin Java》

如果你是个讨厌读书的人,那么这本书一定会让你觉得很有趣。

这内容是否看着就很好理解。

这本书,通俗易懂,重点突出的书,相当适合初学者快速入门,缺点是段子太多,有时候会被当成笑话书来看。

以上推荐的7本Java经典书籍,希望对大家的学习有所帮助。也希望在成为一名更优秀的Java程序员的道路上,我们可以一起学习、一起进步。

⑻ java关键字怎么背

java关键字不需要背的,只需要做到,看到这个单词你就知道他是关键字就行了。这个是需要时间积累的,多看看书,敲敲代码,时间长了,自然就会一眼看出来了。开始时主要是敲代码,不会写没关系,照着书和视频去敲,去背。这样时间长了对自己帮助很大的。thinking in java这本书,建议你有了基础在去看,因为这本书算比较深奥吧,它适合的人很多,包括初学者、普通者和精通者。所以还是建议你看些初级的视频吧,马士兵之类的,电驴上有的。开始时主要是去背,多敲,把别人的整熟了,就变成自己的了。

⑼ 我为什么把think in java 读了10遍

要么是你很牛逼,每读一遍都能学到新的东西。要么就是学渣,读了10遍还是没看懂。我应该是后者

⑽ thinkphp for循环 java

{$t_bumen[$i]}

这条语句
前后都没加java语言标识

热点内容
创建邮箱地址服务器连接错误 发布:2025-01-13 09:49:24 浏览:723
linux编辑文档 发布:2025-01-13 09:47:51 浏览:435
二手制冷压缩机 发布:2025-01-13 09:43:59 浏览:585
网鱼电脑密码多少 发布:2025-01-13 09:33:46 浏览:464
如何取消子账号密码 发布:2025-01-13 09:22:41 浏览:347
抖音搜索有缓存 发布:2025-01-13 09:17:28 浏览:590
c语言字符数组连接 发布:2025-01-13 08:55:11 浏览:901
国二c语言编程题目 发布:2025-01-13 08:45:41 浏览:285
ipad软件如何加密 发布:2025-01-13 08:28:59 浏览:278
android的文件操作 发布:2025-01-13 08:24:48 浏览:173