问题：﻿自学 Java 怎么入门？ 在大学自学 Java。看视频教程和代码能看懂 自己写就写不出来，怎么样能够入门？
话题：﻿生活方式、Java、Java编程、Java程序员、Java入门
回答：﻿编程语言Java，已经23岁了。从1995年诞生以来，就一直活跃于企业中，名企应用天猫，百度，知乎......都是Java语言编写，就连现在使用广泛的XMind也是Java编写的。Java应用的广泛已经到了“无处不用”的盛世，而且一直在语言排行榜榜首，从未被超越。废话不多说，今天主要是给大家讲讲怎样学习Java，给大家建议一条轻松精通Java的学习路线。有了相对标准的流程，那么你的学习效率一定会倍增。下面对java学习进行一次史无前例的剖析,细致的讲解零基础的人怎么学习Java。先看下Java在基础阶段的知识点路线图。内容多吗？不要被吓到了，知识点剖析的比较细，所以看着比较多。不要害怕学不会，经过下面的详解，你就会明白这些知识点都是干嘛的了。入门阶段，主要是培养Java语言的编程思想。了解Java语言的语法，书写规范等，掌握Eclipse、MyEclipse等开发工具，编写Java代码的能力。学完这个阶段你应该可进行小型应用程序开发并且可以对数据库进行基本的增删改查管理。注意：此阶段知识点的学习，会有真实的项目进行驱动学习，让你轻松理解各知识点。1计算机基础知识针对零基础学习的人，从对计算机操作等知识的了解，延伸到Java语言的发展与开发工具的使用上。主要是让你知道怎样执行计算机命令，认识Java这门语言，感受编程语言Java怎么开发程序。1)计算机基础让零基础学习的人先了解计算机相关知识，进而再去了解Java语言。2)DOS常用命令了解什么是DOS，并掌握DOS控制台的打开方式，同时熟悉常用的DOS命令，例如：盘符切换、进入指定目录、删除文件等，完成使用DOS命令对计算机进行操作和控制。3)Java概述了解Java语言的发展史、Java语言平台版本、Java语言的特点，以及JRE与JDK。JRE是Java的运行环境，JDK是Java开发工具包，它包含了Java的开发工具以及JRE。所以安装了JDK就不用再单独安装JRE了。4)JDK环境安装配置了解了什么是JDK，以及JDK的重要性，下一步我们就来学习如何安装和配置JDK环境。在安装JDK之前，我们首先需要下载JDK，针对不同的系统，我们需要下载不用版本的JDK。5)环境变量配置了解path、classpath环境变量，理解path变量和classpath变量的作用，并掌握path变量和classpath变量的配置方式。6)Java程序入门当JDK、环境变量配置完毕，我们就可以开始编写Java程序。编写Java程序可以使用如下几种工具：notepad（微软操作系统自带）、Editplus、Notepad++、Eclipse、MyEclipse，sublime等等。2编程基础此模块学习是让你了解编程的具体流程，学习Java基础语法的格式等。具体要掌握不同数据类型的变量定义与使用，掌握不同运算符的运算规则，掌握流程控制语句的执行流程，编写方法的声明与调用，创建数组并访问数组元素等知识。1)注释在程序开发工程中，用于解释和说明程序的文字我们称之为注释，Java中的注释分为以下几种：单行注释、多行注释、文档注释。2)关键字了解Java关键字的含义及特点，掌握关键字使用的注意事项。3)标识符了解什么是标识符，标识符的组成规则，以及标识符使用时的注意事项。4)常量与变量理解常量与变量的含义，并掌握常量与变量的区别、变量的定义格式以及变量的赋值。5)数据类型掌握Java语言的数据类型，如基本数据类型：byte、short、int、long、float、double、char、boolean，以及引用类型：类、接口、数组。6)运算符熟练掌握Java中的运算符：算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三目运算符。7)流程控制语句了解什么是流程控制语句，掌握以下流程控制语句：顺序结构、选择结构、循环结构，并能够通过流程控制语句实现特定的功能。8)方法掌握方法的定义及格式，并能正确的调用方法，理解方法的调用过程，同时清楚方法的注意事项;掌握方法重载及其特点。9)数组了解数组的概念，掌握数组的定义格式、静态初始化、动态初始化，并能够理解Java中数组的内存图解。熟练掌握数组的遍历、获取最值、数组元素逆序、数组元素查找、数组排序和二分查找，以及二维数组的定义格式及初始化。3面向对象现实世界中，随处可见的一种事物就是对象，对象是事物存在的实体，如人类、书桌、计算机、高楼大厦等。人类解决问题的方式总是将复杂的事物简单化，于是就会思考这些对象都是由哪些部分组成的。通常都会将对象划分为两个部分，即动态部分与静态部分。静态部分，顾名思义就是不能动的部分，这个部分被称为“属性”，任何对象都会具备其自身属性，如一个人，它包括高矮、胖瘦、性别、年龄等属性。然而具有这些属性的人会执行哪些动作也是一个值得探讨的部分，这个人可以哭泣、微笑、说话、行走，这些是这个人具备的行为（动态部分），人类通过探讨对象的属性和观察对象的行为了解对象。1)面向对象思想了解面向过程编程思想，能够通过案例理解Java的面向对象编程思想，了解面向对象开发、设计、特征。2)类与对象了解什么是类，什么是对象，并理解类与对象之间的关系；熟练掌握类的定义、对象内存图等。3)成员变量和局部变量了解什么是成员变量，什么是局部变量，以及从他们在类中的位置、内存中的位置、生命周期、初始化值等方面掌握他们的区别。4)匿名对象了解什么是匿名对象，掌握匿名对象的两种使用情况。5)封装清楚的了解什么是封装，并能够理解封装的优点与缺点，同时掌握封装的原则。6)this关键字掌握this关键字的含义与使用。7)构造方法了解什么是构造方法，构造方法的作用，以及与构造方法相关的注意事项。8)继承理解什么是继承，继承的好处以及java中继承的特点和注意事项，继承中成员变量的关系、构造方法的关系、成员方法的关系，方法重写与方法重载的区别。9)多态理解什么是多态，掌握多态案例及成员访问的特点，多态的优点和缺点，多态中的转型问题。10)抽象类了解什么是抽象类，抽象类的特点，抽象类成员的特点。11)接口了解什么是接口，接口的特点，接口成员的特点，类与类、类与接口的关系，以及抽象类与接口的区别。12)内部类什么是内部类，内部类的访问特点，内部类的位置，什么是成员内部类、局部内部类、匿名内部类，以及匿名内部类在开发中的使用。4常用类类库就是JavaAPI(ApplicationProgrammingInterface，应用程序接口)，是系统提供的已实现的标准类的集合。在程序设计中，合理和充分利用类库提供的类和接口，不仅可以完成字符串处理、绘图、网络应用、数学计算等多方面的工作，而且可以大大提高编程效率，使程序简练、易懂。学习内容：掌握Object类、Scanner类、String类、StringBuffer类、StringBuilder类、Arrays类、基本包装类、正则表达式、Math类、Random类、System类、Date类、DateFormate类、Calendar类，及其常用方法。5集合集合类存放的都是对象的引用，而非对象本身，出于表达上的便利，我们称集合中的对象就是指集合中对象的引用。简单一点就是说，集合是存放数据的容器。学习内容：什么是集合?数组与集合有什么区别，集合类的特点，掌握Collection接口、Iterator接口、List接口、ListIterator接口、ArrayList类、Vector类、LinkedList类、泛型、Set接口、HashSet类、Map接口、HashMap类、LinkedHashMap类等。6IOIO（Input/Output）是计算机输出/输出的接口。Java的核心库http://java.io提供了全面的IO接口，包括：文件读写，标准设备输出等等。Java中IO是以流为基础进行输入输出的，所有数据被串行化写入输出流，或者从输入流读入。1)异常了解什么是异常，异常的由来，常见的异常，异常的分类，掌握jvm对异常的默认处理方案，异常的处理方案：try…catch…finally、throws，什么是编译时异常，什么是运行时异常，掌握它们两的区别，throws关键字、throw关键字，以及这两个关键字的区别，熟练掌握自定义异常，异常注意事项。2)File类了解什么是File类，File类的用途，掌握File类的方法：createNewFile()、mkdir()、mkdirs()、delete()、renameTo(Filedest)、isDirectory()、isFile()、exists()、等方法，以及File类的基本获取功能方法和高级获取功能方法。3)IO流了解什么是IO流，IO流的用途;熟练掌握输入流、输出流、字符流、字节流、IO流的常用基类;如何使用字节流读写数据、复制数据;什么是字节缓冲流，如何使用字节缓冲流读写数据;什么是转换流，如何使用转换流更加高效的读写数据，内存操作流、打印流、标准输入输出流、序列化流、Properties集合。4)IO流练习(1)复制文本文件；(2)复制图片；(3)把ArrayList集合中的字符串数据存储到文本文件；(4)从文本文件中读取数据(每一行为一个字符串数据)到集合中，并遍历集合；(5)复制单极文件夹；(6)复制单极文件夹中指定文件并修改文件名称；(7)复制多极文件夹；(8)已知s.txt文件中有这样的一个字符串：“hcexfgijkamdnoqrzstuvwybpl”；(9)请编写程序读取数据内容，把数据排序后写入ss.txt中；(10)获取每次读取数据的行号；(11)登录注册IO版。7多线程是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程，进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理（Chip-levelmultithreading）或同时多线程（Simultaneousmultithreading）处理器。在一个程序中，这些独立运行的程序片段叫作“线程”（Thread），利用它编程的概念就叫作“多线程处理（Multithreading）”。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程（台湾译作“执行绪”），进而提升整体处理性能。1)多线程了解什么是线程，什么是多线程，理解java程序的运行原理，掌握多线程的实现方案，如何获取和设置线程名称、线程的生命周期、如何解决线程安全问题、线程同步、Lock锁、死锁问题、线程间通信、线程的状态及状态转换、线程池。2)多线程面试题(1)多线程有几种实现方案，分别是哪几种?(2)同步有几种方式，分别是什么?(3)启动一个线程是run()还是start()?它们的区别?(4)sleep()和wait()方法的区别；(5)为什么wait(),notify(),notifyAll()等方法都定义在Object类中；(6)线程的生命周期图。3)设计模式了解什么是设计模式，设计模式的分类，熟练掌握单例设计模式(懒汉式、饿汉式)。8网络编程网络编程最主要的工作就是在发送端把信息通过规定好的协议进行组装包，在接收端按照规定好的协议把包进行解析，从而提取出对应的信息，达到通信的目的。9反射JAVA反射机制是在运行状态中，对于任意一个类，都能够知道这个类的所有属性和方法；对于任意一个对象，都能够调用它的任意一个方法和属性；这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。一：盲目的去学当初我在对于java这个行业什么都不了解的情况下，比如：不知道未来发展趋势，不知道学习java应该注意哪些初始问题，不知道具体的学习规划学习路线等等，一味的买书看书，看视频，到了中期阶段萌生放弃的想法，和主要是因为觉得自己越学越迷茫，也知道自己这样学找不到工作，这是初学者最大的误区。二：孤军奋战当初在学java的时候，从来都没有跟别人交流过，就感觉活在自己的世界里，总认为自己什么都可以搞定，而且很多知识不会了，直接就过去了，并没有深究，而这种学习态度也注定了我的学习是失败，学习java一定要有讨论的过程，只有跟不同的交流才能了解到你自己不知道的东西。三：没人指点java对于我来说是从来不了解的行业，而我当时从来没有想过找一个这个行业比较厉害的人去请教下，现在我终于认识到了一点什么叫“方法不对，努力白费”所有的java大神都有自己的学习方法，而学java的学习也基本是一致，而对于一个什么都不懂的初学者根本不会知道怎么学，这也是造成失败的最直接原因。四：盲目看书对于新手来说，学习一个技能肯定是买书看书，但是后来我才实践的证明，对于一个啥都不懂的初学者来说看书基本可以成为无用的，因为这样的结果就势必会造成大多数人的情况：能看懂，但是永远不会写，这就是我最初出现的问题，非常烦人，所以建议初学者少看书，多动手，必须弄清楚java的效率学习方法。推荐一下新手学习路线：第一阶段：HTML+CSS静态布局开始有人肯能会说我是做后端的，前端的事情不用管，这本身就是一个误区，如今HTML5这么强大，你不会本身就不会有什么竞争力第二阶段：必须要掌握的JS/JQJS尤为重要，也是最难的，不用说Java无论在前端还是后端中都是占比非常大的，很多人学不懂也是情理之中，这个跟思维有关系，适当了解一下数据结构有利于学习Java和javase。第三阶段：JAVASE核心技术JAVA的基础，也是JAVA的魂和JAVA紧紧相连的数据库。最重要的JAVASE，想必大家都清楚，JAVASE就是JAVA的基础部分，上过学的人都知道，任何一个试卷80%都是基础，没有太难的东西，JAVASE就是JAVA的基础，根据我这么多年学习java的经验来看，如果一个人学不好JAVASE，那JAVA基本就是白学，后面的框架基本就是听天书。数据库，不用了说了，最常见的那三个数据库，增删改查，多去练习SQL语句吧，复杂的连接表示有难度的。第四阶段：JSP相关技术JSP和servlet就目前来看有些公司现在不用JSP，因为他的加载速度有点慢。不过还是现在学着吧，毕竟在JAVA体系中也是非常重要的。第五阶段：JAVAEE企业级开发框架，struts2，hibernate4，mybatis3，spring4，springmvc，这些东西都要掌握，但是整个JAVA体现想要理解的还算可以确实有些难度，自学的话，基本没啥可能了。上面的学习内容基本包括全了，JAVA体系基本如上，希望想学习JAVA的初学者能坚持下去，JAVA语言确实非常的强大，为了需要人才也是最多的。