以前很多时候会开玩笑,说什么,三天学会PHP,七天精通Nodejs,xx天学会xx 。。。

  一般来说,这样子说的多半都带有一点讽刺的意味,我也基本上从不相信什么快速入门。我以前在学校的时候自觉过很多门语言,但基本都只是了解了一个大概,入门肯定也算不上了。顶多也就能吹吹牛,说几个大的概念而已。

公司最近转型,决定抛弃PHP了,我们的出路是:要么H5,要么JAVA,要么走人。纠结了一段时间后,决定还是转JAVA了。

  当一个人在自己熟悉的领域的时候,好像说什么都很有自信,都觉得自己是对的。那时候我们的口号是:所有语言都差不多,不过是专长不一样罢了,语言不重要!但是真正到了自己干起来的时候,说实话,还是心虚的。毕竟曾经在自己专攻的领域干很多年,也算是工作经验丰富了。但是现在涉及到转型,自己立马就要变成菜鸟了,你还敢像以前一样自信满满的说事了。

  心虚归心虚,事情总是要做的,牛总是要吹的。那么,解决方案是什么呢? 那就是快速学习,快速成长,快速成为老鸟。

  所以我讽刺地捡起了这本书!《JAVA 从入门到精通》。说实话,在决定轩型之后,我就已经快速翻阅了好多本JAVA方面的书籍,但是当看到这本从入门到精通之后,我还是再次看了。觉得也有必要总结一下了,毕竟经验在于总结嘛!

  基本语法我其实是略过的,但是很多时候还是踩坑了,将其中一些列举出来即可。讲述一个大概吧!

1. JAVA的基本特性(WEB)
  1.1 JAVA是一门编译型语言,必须要先将源码编译一次(JAVAC),生成.class文件,然后再运行(JAVA)。这样有两个重大好处,一是不重复进行前期的编译工作从而本质上提升运行效率,二是在编译期间可以做很多源码重组及优化方面的工作。
  1.2 JAVA是运行在JVM中的,只要一启动后,就会加载所有相关代码到内存,虽然很占内存,但是可以做到一次启动,永久使用的高效利用!
  1.3 JAVA入门的IDE呢,基本上还是选择古老的Eclipse作为工具,一是历史悠久资料多可以请教的人也多,二是Eclipse也确实有他独到之处。
  1.4 Tomcat作为web容器运行,方便也简单入门,配置方面主要注意与计算机位数相同即可,单独打开tomcat,观察是否报错,有错就解决掉吧。

  1.5 JAVA变量的使用范围可能和其他语言不同,JAVA会查找,当前作用域 > 当前类 > 父类,不一定需要 this 关键字,这和某些语言有一定差别。
  1.6 类型转换
  1.6.1 自动转换只会从小转换到大,顺序为:byte > short > int > long > float > double > char
  1.6.2 强制类型转换,这个注意点比较多点,举例:Integer.valueOf("123").intValue(),  Float.valueOf("123").floatValue(),Long.valueOf("123").longValue(),Character.valueOf("123").charValue(),String b;b=a+"";
  使用Object保存中间类型,再以特定类型转换还原,如:
    Map<String, String> c = new HashMap<String, String>();
    c.put("t1", "test1");
    Object cc = c;
    System.out.println("c is: " + c + " & cc is: " + cc);
    Map<String, String> map = (Map<String, String>) c;
    System.out.println("covert map is: " + map);
  1.6.3 大小比较,只能使用相同类型比较, 1 == 1, 字符比较只能用"cc".equals(var); switch(var){}自jdk1.7后支持字符串判断。
  1.6.4 对象都是以引用方式操作,如果要使用一个独立对象,需要复制内容到新的内存,这和某些语言有较大差别。
  1.6.5 抽象类、接口,要求子类必须实现相应方法
  1.6.6 类的向上转型、向下转型
  1.6.7 equals, toString方法

2. JAVA深入一点的东西
  2.1 内部类:对于基本只在内部调用的情况编写,静态类:一些通用的功能,写入到此类中,匿名类:用于一次性使用类如线程处理
  2.2 java反射(有点没搞明白,多看一下)
  2.3 java集合类:Map, HashMap, TreeMap, List, ArrayList, LinkedList, Set, HashSet, SortedSet, Interator

  2.4 try{ ... } catch(..) { ... } 异常的捕获,在需要的地方抛出自定义异常

  2.5 I/O, FileInputStream, FileOutputStream, FileReader, FileWriter, BufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWriter,zip...

3. Swing 窗口布局客户端开发,对于web开发没有用,暂时没有细读,总体来说就是利用各种组件布局,添加事件。。。

4. 多线程
  4.1 Thread类,Runnable接口,new Thread("xxx").start(), wait(), lock.notify(), notifyAll(), yield, join, synchronized

5. 网络通信(Socket)
  5.1 TCP/IP: InetAddress, new ServerSocket(10003); new Socket("192.168.1.88",10003);
  5.2 UDP/IP: new DatagramSocket(); new DatagramPacket(buf,buf.length); new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.88"),10000);

6. JDBC操作数据库
  之前使用PDO,和这个基本一致,现在使用的都是连接池,mybatis这些玩意了

7. 案例
  随便看看就好了。

由于是在项目中学习,案例自然是比较多的,快速学习基本知识,项目进度不落下,就好了。
目前对于看JAVA的源码还有很多困惑的地方,找方法中!!!

《JAVA 从入门到精通》 - 正式走向JAVA项目开发的路的更多相关文章

  1. 《Java从入门到精通》src0-8

    public class HelloWorld { public static void main(String[] args) { System.out.println("Hello wo ...

  2. 《java从入门到精通》学习记录

    目录 <Java从入门到精通>学习记录 3 基础的基础部分: 3 一. 常量与变量 3 1. 掌握: 3 (1) .常量与变量的声明方式: 3 (2) .变量的命名规则: 3 (3) .变 ...

  3. cucumber java从入门到精通(4)Scenario Outline及数据驱动

    cucumber java从入门到精通(4)Scenario Outline及数据驱动 到目前为止,我们的TodoList类工作良好,不过离我们的预期--任务清单系统还是有不少差距,究其原因不过如下: ...

  4. cucumber java从入门到精通(3)简单实现及断言

    cucumber java从入门到精通(3)简单实现及断言 上一节里我们定义了step的java代码实现文件,step就是测试步骤及断言的集合,我们先定义出来,以后可以驱动开发以及在持续集成时重用. ...

  5. cucumber java从入门到精通(2)用代码定义步骤

    cucumber java从入门到精通(2)用代码定义步骤 上一节里我们定义了feature文件,feature文件就是自然语言描述的用例文件,它有一定的章法,具体的潜规则是: 使用Feature关键 ...

  6. cucumber java从入门到精通(1)初体验

    cucumber java从入门到精通(1)初体验 cucumber在ruby环境下表现让人惊叹,作为BDD框架的先驱,cucumber后来被移植到了多平台,有cucumber-js以及我们今天要介绍 ...

  7. ARKit从入门到精通(11)-ARKit开发常见问题及解决方案

    转载请注明出处:ARKit从入门到精通(11)-ARKit开发常见问题及解决方案 本文主要介绍ARKit开发过程中一些常见问题 1.ARKit框架无法导入问题 2.ARKit运行黑屏或者白屏问题:Un ...

  8. Java从入门到精通一步到位!

    Java作为近几年来非常火的编程语言,转行来做Java的人不计其数,但如今真正的人才仍然匮乏,所以学习Java一定要有一个系统的学习规划课程.阿里云大学帮您规划Java学习路线可以帮助您从一个小白成长 ...

  9. 【入门到精通】❤️「Java工程师全栈知识路线」

    持续更新中- Vue前端开发 章节 内容 实践练习 Vue.js高效前端开发 • (实践练习) 第1章 Vue.js高效前端开发 • [ 一.初识Vue.js ] 第2章 Vue.js高效前端开发 • ...

随机推荐

  1. (转)java中的进程与线程

    (转自地址http://www.ibm.com/developerworks/cn/java/j-lo-processthread/) Java 进程的建立方法 在 JDK 中,与进程有直接关系的类为 ...

  2. JDBC学习笔记(2)

    上一篇博客简单介绍了JDBC连接的简单知识,下面就详细介绍.李勇老师对JDBC连接有很好的比喻: 首先加载驱动,其实就是一些类,就是jar包,要加载到classpath里面的.实际的程序,服务和数据库 ...

  3. 自己封装的一个无限滚动 mark 待传

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  4. 自话自说——POI使用需要注意一个地方

    2015.12.1  天气 不怎么好   心情跟天气一样.知道为什么吗,因为昨晚一晚没睡你懂吗... 今天在用POI操作excel的时候,遇到了一个很恶心的地方,这个地方真的有那种让我不相信编程的感觉 ...

  5. AppFuse3.5对接oracle数据库

    AppFuse是一个使用Java语言开发web应用系统的集成框架.java开发人员最头痛的事情就是面对大量的框架不知该如何选择.这些框架性能如何,兼容性如何等等都需要筛选比较.Appfuse作者Mat ...

  6. 大文件下载控件(down2)-示例更新-Xproer.HttpDownloader

    版权所有 2009-2016 荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com/ 产品首页:http://www.ncmem.com/webapp/down2/i ...

  7. week7 read

    对于银弹: 在<No Silver Bullet>这篇IBM大型电脑之父佛瑞德·布鲁克斯(Fred Brooks)在1987年所发表的一篇关于软体工程的经典论文中,强调了由于软件的复杂性本 ...

  8. css小技巧

    每逢大的灾难的时候,很多网站变成了灰色,如何让网站快速变灰?css代码是很简单的,用的是css的filter功能. html { filter: grayscale(100%);//IE浏览器 -we ...

  9. [转载]iOS Provisioning Profile(Certificate)与Code Signing详解

    原文:http://blog.csdn.net/phunxm/article/details/42685597 引言 关于开发证书配置(Certificates & Identifiers & ...

  10. C# Http Get 提交请求

    /// <summary> /// HTTP GET方式请求数据. /// </summary> /// <param name="url">U ...