如何学习JAVA

如何学习JAVA,第1张

零基础学习java可按照这份大纲来进行学习

第一阶段:Java专业基础课程

阶段目标:

1 熟练掌握Java的开发环境与编程核心知识

2 熟练运用Java面向对象知识进行程序开发

3 对Java的核心对象和组件有深入理解

4 熟练应用JavaAPI相关知识

5 熟练应用JAVA多线程技术

6 能综合运用所学知识完成一个项目

知识点:

1、基本数据类型,运算符,数组,掌握基本数据类型转换,运算符,流程控制。

2、数组,排序算法,Java常用API,类和对象,了解类与对象,熟悉常用API。

3、面向对象特性,集合框架,熟悉面向对象三大特性,熟练使用集合框架。

4、IO流,多线程。

5、网络协议,线程运用。

第二阶段:JavaWEB核心课程

阶段目标:

1 熟练掌握数据库和MySQL核心技术

2 深入理解JDBC与DAO数据库 *** 作

3 熟练运用JSP及Servlet技术完成网站后台开发

4 深入理解缓存,连接池,注解,反射,泛型等知识

5 能够运用所学知识完成自定义框架

知识点:

1、数据库知识,范式,MySQL配置,命令,建库建表,数据的增删改查,约束,视图,存储过程,函数,触发器,事务,游标,建模工具。

2、深入理解数据库管理系统通用知识及MySQL数据库的使用与管理。为Java后台开发打下坚实基础。Web页面元素,布局,CSS样式,盒模型,JavaScript,jQuery。

3、掌握前端开发技术,掌握jQuery。

4、Servlet,EL表达式,会话跟踪技术,过滤器,FreeMarker。

5、掌握Servlet相关技术,利用Servlet,JSP相关应用技术和DAO完成B/S架构下的应用开发。

6、泛型,反射,注解。

7、掌握JAVA高级应用,利用泛型,注解,枚举完成自己的CRUD框架开发为后续框架学习做铺垫。

8、单点登录,支付功能,项目整合,分页封装熟练运用JSP及Servlet核心知识完成项目实战。

第三阶段:JavaEE框架课程

阶段目标:

1 熟练运用Linux *** 作系统常见命令及完成环境部署和Nginx服务器的配置

2 熟练运用JavaEE三大核心框架:Spring,SpringMVC,MyBatis

3 熟练运用Maven,并使用SpringBoot进行快速框架搭建

4 深入理解框架的实现原理,Java底层技术,企业级应用等

5 使用Shiro,Ztree和Spring,SpringMVC,Mybaits完成企业项目

知识点:

1、Linux安装配置,文件目录 *** 作,VI命令,管理,用户与权限,环境部署,Struts2概述,hiberante概述。

2、Linux作为一个主流的服务器 *** 作系统,是每一个开发工程师必须掌握的重点技术,并且能够熟练运用。

3、SSH的整合,MyBatis,SpringMVC,Maven的使用。

4、了解AOP原理,了解中央控制器原理,掌握MyBatis框架,掌握SSM框架的整合。

5、Shiro,Ztree,项目文档,项目规范,需求分析,原型图设计,数据库设计,工程构建,需求评审,配置管理,BUG修复,项目管理等。

6、独立自主完成一个中小型的企业级综合项目的设计和整体架构的原型和建模。独立自主完成一个大型的企业级综合项目,并具备商业价值

嗯。没用过这类,类似frame的窗口了?添加了监听器的对象只有获得焦点后才会监听键盘事件,例如在文本框上添加监听器后,如果光标不在文本框里监听器是没有反应的。

你是在gamecanvas1上添加监听器的么?那按键盘之前先点击gamecanvas1使之获得焦点试试,不行的话。。试试在一个button上监听,反正点一下button必然使button获得焦点,这样测试一下

java 开发需要学哪些

自java出来之后,就被很多人欢迎,虽然开始的时候有点麻烦,但是发展到现在很多人企业都在使用java做一些应用,包括了一些政府部门,因此java工程师需求也越来越大了。那么下面小编给大家说说java开发需要学哪些,希望能对你有些帮助。

java语法,通过任何一本Java入门书籍,都可以学会Java基本语法。千万不要认为,把书上的例子程序都能写出来就算学会了Java语法。要想真正掌握,还需要做大量的测试题。对语法不准确的理解,会使你写的代码出现逻辑错误。而这些错误会使你真正的项目开发中吃尽苦头:认为正确才会写上去。而在几十万行代码中找出几行有逻辑错误的代码,非常困难。因为你几乎不会怀疑你认为正确的代码存在错误。

常用类。永远不要写别人已经实现的代码。有很多功能,用JDk中现有的类就可以完成。需要熟悉JDK可以通过研究JDK帮助文档和JDK源代码的方式,逐渐了解,需要的类都在什么地方。一方面,要熟悉有哪些可以直接使用的资源,另一方面,学习一下,SUN公司的工程师怎样写代码。

IDE集成开发环境。现在企业最常用的IBM公司的eclips类似的还有JBuilder,Idea,NetBean等等。毕竟,只有5%的顶尖高手在使用简单的文本编辑器在写Java代码。多数程序员都是使用这些东西。

数据库MySql,Oracle,DB2小项目多数使用MySql这样的免费数据库。大一些的项目会考虑使用Oracl或者DB2Java项目很少使用SqlServer因此,还需要学习数据库方面的一些知识。可以从SQL语言开始。这些数据库都支持标准SQL学会基本的SQL,参考具体的数据库手册,就可以完成一般的项目开发了当然,要想使你程序运行的效率更高,需要更深入的学习。大部分的程序优化,都是从这部分开始的

JDBCJava数据库连接。使用Java程序 *** 作数据库。这部分非常重要。几乎所有的企业项目都会用到

2怎么学习java

一定要看书

现在学习Java变得比以前容易多了,除了有大量的视频教程外,还有专业的java培训机构,这都使学习变得更加傻瓜化,然而我要说的是,Java虽然变得越来越容易学,然而那只代表入门容易,并不代表这门编程技术就真的变简单了。如果仅仅学了些皮毛,高手写的程序你是望尘莫及的。在学习的过程中,书籍永远是知识最好的载体,很多出色的程序员大师精心编撰的编程书籍,富含的不仅仅是一些知识,更多的是他们所传授的思想,通过看书,专研书籍中的内容,会让你变得更加聪明,写的程序也更加的精炼。

编程的时候,一定要独立思考

现在网络很发达,我见很多程序员总爱百度,包括我带的许多人都是这样,一个jdbc这么初级的东东,他们编程几年了,每次用还总是百度查。这个东西应该是熟记于心的,随时用,信手拈来,这样才能成为高手。就好像一个修理工,一遍查手册,一边给你修车,亦或是一个医生,一边看教程,一边给你看病,想想就觉得恐怖。

算法很重要,要不断的优化程序

现在很多人都是快速的学习,快速的练习,反复的练习。而我的建议是,无论你学到什么阶段,都要去不断的优化自己的编程,能用3行实现的程序,不用5行,这样你编写的程序才能更加凝练。而且,编程学习的中后期,就要重视算法,尽量编程优质的程序,这才是编程的美妙之处。

写一个程序,不断改进

你学习的过程可能很漫长,我建议你从一开始的时候,就想着写一个小程序,比如一个计算器的程序,开始可能很简单,仅仅通过命令行的方式呈现,功能可能也只有加减乘除,但是随着你学习的深入,你可以不断的完善这个程序,直到有一天,你把它做成一个非常完善,性能非常卓越的程序后,你就真正学成了。

3怎样学java

1态度

学习就要有学习的态度。虚怀若谷,才能海纳百川,如果有什么不懂得可以在网络上,论坛上提出自己的疑问,会有人在一定的时间内帮助你解决的。

还是那句老话“功夫不负有心人”,只要你肯下功夫,铁杵也会磨成针的,更不用说一个小小的JAVA技术了。所以,虚心的态度非常重要。

2学好基础知识

千里之行始于足下,摩天大楼平地起,很多事情都是从最基础做起,没有基础,就谈不上更高级的发展。学习JAVA也一样,不从基础学习,连基础知识都没有掌握,还谈什么精通JAVA

3实践

几乎所有的老程序员都会这些建议,那就是多编码、多练习,熟能生巧就是如此。

我们都看过武侠小说,高手绝不是只理解招式的作用,而是通过千万次的练习,将招式变成自己下意识的行为,这才是高手。编程也是一样,当你看到工程详细说明时已经下意识的在脑中构建好了整个程序的框架,一切成竹在胸才是高手。

4java怎么样学习

学习JavaSE基础

可以找一本书(任何大学教材)学习Java的基础部分,不要看特别厚的书,比如Java编程思想,对于初学者看这类书太累。并不推荐只是看视频学习,而是要边看书边照着书上的代码打一遍。即使记不住,也要打一遍。此时的学习,主要是学习好Java的语法,知道每个常用的类 或者功能怎么用。并不推荐使用命令行来学习代码,直接用IDE就好了,因为大部分国内的公司也是用IDE开发的。学的时候并不一定要背下来,但是要在用的时候知道去哪里找相关的内容,然后通过反复的使用达到记住的目的。

学习高级特性

同样是阅读和练习。这部分更不可能完全的背下来,所以主要是下载一些现成的代码例子,然后读懂,接下来尝试去修改。比如“网络编程”,如果代码的例子讲解的是利用网络编程发送文字,那么可以尝试修改,学习如何发送等。在这一阶段的学习,还要掌握大量的Java包,对于数据结构有appache的common包,有google的Guava等,大部分的编程实际上都是利用其他人编写好的java包的。

深入理解JavaAPI

就是弄懂原理。比如List有几种实现,每个实现的区别是什么,Java在序列化的时候存储的格式是什么,java的垃圾回收原理是什么。对于这方面的学习,其实可以找一些“面试题”通常会问到,比如研究者July收集的各种题库;也可以看书,比如Effective java 中文版(第2版)。

学习设计模式

其实这时为了更合理利用Java资源,进行正确的面向对象程序开发。这个时候要弄懂如何用java实现每一种设计模型(这时会综合利用继承、多态、抽象等机制)。可以看Head First 设计模式(中文版)等书,结合网上的资料。

开发工程级代码

这个阶段首先要下载一些其他人编写好的工程类的Java程序,看能不能看懂。如果能,学习他们的良好编程习惯,同时接着学习各种java的开源包。这类程序可以从GitHub上下载。然后在尝试参与到其他人的项目中,去修改他们的代码或者完成新的需求。其实能够做到这步,基本JavaSE就很好了。

学习java是个不错的选择,java在it行业需求的人才每年占上百万个,并且平均每个月薪资也是在18W左右。

如果想达到工作标准可以参考下面的内容:

1Java SE部分 初级语法,面向对象,异常,IO流,多线程,Java Swing,JDBC,泛型,注解,反射等。

2数据库部分,基础的sql语句,sql语句调优,索引,数据库引擎,存储过程,触发器,事务等。

3 前端部分, HTML5 CSS3 JS, HTML DOM Jquery BootStrap等。

4 Java EE部分,Tomcat和Nginx服务器搭建,配置文件,Servlet,JSP,Filter,Listener,>

5 框架部分,每个框架都可以分开学,在去学如何使用SSM 或者SSH框架,如何搭建,如何整合。开发中为什么会用框架,Rest是啥?Spring为啥经久不衰,底层如何实现等。

623种设计模式,掌握常用的,比如单例模式的多种实现,责任链模式,工厂模式,装饰器模式等,了解常用场景。

7 基础算法和数据结构,八大排序算法,查找算法。

8 熟练使用maven等构建工具,git等版本控制工具,熟悉常用linux命令,log4j,dubug,junit单元测试,日志打印工具,Redis等NoSql。

互联网行业目前还是最热门的行业之一,学习IT技能之后足够优秀是有机会进入腾讯、阿里、网易等互联网大厂高薪就业的,发展前景非常好,普通人也可以学习。

想要系统学习,你可以考察对比一下开设有相关专业的热门学校,好的学校拥有根据当下企业需求自主研发课程的能力,能够在校期间取得大专或本科学历,中博软件学院、南京课工场、南京北大青鸟等开设相关专业的学校都是不错的,建议实地考察对比一下。

祝你学有所成,望采纳。

SwingAPI的设计目标是强大 灵活和易用 非凡地 我们希望能让程序员们方便地建立新的Swing组件 不论是从头开始还是通过扩展我们所提供的一些组件 出于这个目的 我们不要求Swing组件支持多线程访问 相反 我们向组件发送请求并在单一线程中执行请求 本文讨论线程和Swing组件 目的不仅是为了帮助你以线程安全的方式使用SwingAPI 而且解释了我们为什么会选择现在这样的线程方案 本文包括以下内容

单线程规则 Swing线程在同一时刻仅能被一个线程所访问 一般来说 这个线程是事件派发线程 规则的例外 有些 *** 作保证是线程安全的 事件分发 假如你需要从事件处理或绘制代码以外的地方访问UI 那么你可以使用SwingUtilities类的invokeLater要求在事件派发线程中执行某些代码 这个方法会立即返回 不会等待代码执行完毕 invokeAndWait行为与invokeLater类似 除了这个方法会等待代码执行完毕 一般地 你可以用invokeLater来代替这个方法 下面是一些使用这几个API的例子 请同时参阅《TheJavaTutorial》中的 BINGOexample 尤其是以下几个类 CardWindow ControlPane Player和OverallStatusPane

使用invokeLater方法你可以从任何线程调用invokeLater方法以请求事件派发线程运行特定代码 你必须把要运行的代码放到一个Runnable对象的run方法中 并将此Runnable对象设为invokeLater的参数 invokeLater方法会立即返回 不等待事件派发线程执行指定代码 这是一个使用invokeLater方法的例子

RunnabledoWorkRunnable=newRunnable };

SwingUtilities invokeLater;使用invokeAndWait方法invokeAndWait方法和invokeLater方法很相似 除了invokeAndWait方法会等事件派发线程执行了指定代码才返回 在可能的情况下 你应该尽量用invokeLater来代替invokeAndWait 假如你真的要使用invokeAndWait 请确保调用invokeAndWait的线程不会在调用期间持有任何其他线程可能需要的锁

这是一个使用invokeAndWait的例子

voidshowHelloThereDialogthrowsException }; SwingUtilities invokeAndWait; }

类似地 假设一个线程需要对GUI的状态进行存取 比如文本域的内容 它的代码可能类似这样

voidprintTextField throwsException }; SwingUtilities invokeAndWait; System out println;}

假如你能避免使用线程 最好这样做 线程可能难于使用 并使得程序的debug更困难 一般来说 对于严格意义下的GUI工作 线程是不必要的 比如对组件属性的更新 不管怎么说 有时候线程是必要的 下列情况是使用线程的一些典型情况 执行一项费时的任务而不必将事件派发线程锁定 例子包括执行大量计算的情况 会导致大量类被装载的情况 和为网络或磁盘I/O而阻塞的情况 重复地执行一项 *** 作 通常在两次 *** 作间间隔一个预定的时间周期 要等待来自客户的消息 你可以使用两个类来帮助你实现线程 SwingWorker 创建一个后台线程来执行费时的 *** 作 Timer 创建一个线程来执行或多次执行某些代码 在两次执行间间隔用户定义的延迟 使用SwingWorker类SwingWorker类在SwingWorker java中实现 这个类并不包含在Java的任何发行版中 所以你必须单独下载它 SwingWorker类做了所有实现一个后台线程所需的肮脏工作 虽然许多程序都不需要后台线程 后台线程在执行费时的 *** 作时仍然是很有用的 它能提高程序的性能观感

SwingWorkersanexampleofusingSwingWorker 要使用SwingWorker类 你首先要实现它的一个子类 在子类中 你必须实现construct方法还包含你的长时间 *** 作 当你实例化SwingWorker的子类时 SwingWorker创建一个线程但并不启动它 你要调用你的SwingWorker对象的start方法来启动线程 然后start方法会调用你的construct方法 当你需要construct方法返回的对象时 可以调用SwingWorker类的get方法 这是一个使用SwingWorker类的例子

//在main方法中 finalSwingWorkerworker=newSwingWorker }; worker start; //在动作事件处理方法中 JOptionPane showMessageDialog)

当程序的main方法调用start方法 SwingWorker启动一个新的线程来实例化ExpensiveDialogComponent main方法还构造了由一个窗口和一个按钮组成的GUI 当用户点击按钮 程序将阻塞 假如必要 阻塞到ExpensiveDialogComponent创建完成 然后程序显示一个包含ExpensiveDialogComponent的模式对话框 你可以在MyApplication java找到整个程序 使用Timer类Timer类通过一个ActionListener来执行或多次执行一项 *** 作 你创建定时器的时候可以指定 *** 作执行的频率 并且你可以指定定时器的动作事件的监听者 启动定时器后 动作监听者的actionPerformed方法会被调用来执行 *** 作 定时器动作监听者定义的actionPerformed方法将在事件派发线程中调用 这意味着你不必在其中使用invokeLater方法 这是一个使用Timer类来实现动画循环的例子

publicclassAnimatorApplicationTimer extendsJFrameimplementsActionListener publicvoidstartAnimationelse } publicvoidstopAnimation publicvoidactionPerformed }

在一个线程中执行所有的用户界面代码有这样一些优点 组件开发者不必对线程编程有深入的理解 像ViewPoint和Trestle这类工具包中的所有组件都必须完全支持多线程访问 使得扩展非常困难 尤其对不精通线程编程的开发者来说 最近的一些工具包如SubArctic和IFC 都采用和Swing类似的设计 事件以可预知的次序派发 invokeLater排队的runnable对象从鼠标和键盘事件 定时器事件 绘制请求的同一个队列派发 在一些组件完全支持多线程访问的工具包中 组件的改变被变化无常的线程调度程序穿插到事件处理过程中 这使得全面测试变得困难甚至不可能 更低的代价 尝试小心锁住临界区的工具包要花费实足的时间和空间在锁的治理上 每当工具包中调用某个可能在客户代码中实现的方法时 工具包都要保存它的状态并释放所有锁 以便客户代码能在必要时获得锁 当控制权交回到工具包 工具包又必须重新抓住它的锁并恢复状态 所有应用程序都不得不负担这一代价 即使大多数应用程序并不需要对GUI的并发访问 这是的SubArcticJavaToolkit的对在工具包中支持多线程访问的问题的描述 我们的基本信条是 当设计和建造多线程应用程序 尤其是那些包括GUI组件的应用程序时 必须保证极端小心 线程的使用可能会很有欺骗性 在许多情况下 它们表现得能够极好的简化编成 使得设计 专注于单一任务的简单自治实体 成为可能 在一些情况下它们的确简化了设计和编码 然而 在几乎所有的情况下 它们都使得调试 测试和维护的困难大大增加甚至成为不可能 无论大多数程序员所受的练习 他们的经验和实践 还是我们用来帮助自己的工具 都不是能够用来对付非决定论的 例如 全面测试在bug依靠于时间时是几乎不可能的 尤其对于Java来说 一个程序要运行在许多不同类型的机器的 *** 作系统平台上 并且每个程序都必须在抢先和非抢先式调度下都能正常工作 由于这些固有的困难 我们力劝你三思是否绝对有使用线程的必要 尽管如此 有些情况下使用线程是必要的 所以subArctic提供了一个线程安全的访问机制

lishixinzhi/Article/program/Java/gj/201311/27616

以上就是关于如何学习JAVA全部的内容,包括:如何学习JAVA、JAVA 键盘监听事件没有反应……拜求高手给解决一下、java需要学习什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10126771.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存