以前很多时候会开玩笑,说什么,三天学会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. Document-对象属性和常用的对象方法

    Document-对象属性和常用的对象方法 对象属性 document.title                           //设置文档标题等价于HTML的title标签 document ...

  2. Swift基础语法(五)枚举、结构体与类的区别

    swift中的结构体值可以是整型.浮点型.字符串.字符.元祖,如果不赋值默认为整型且从0开始计数,如果为整型枚举且要求不是从0开始只需指定枚举的第一个值以后的值自动依次加1 引用方式也与oc有所出入 ...

  3. Django提交POST表单“CSRF verification failed. Request aborted”问题的解决

    1.环境 python 3.4 Django 1.7 Visual Studio 2015 PTVS 2.问题 提交表单,出现以下错误: CSRF verification failed. Reque ...

  4. nginx日常运维

    pid丢失办法: 1.查找nginx进程ID ps -ef | grep nginx 2.将进程ID写入pid > /tmp/nginx.pid 3.重启nginx

  5. 【转载】Adapter用法总结大全

    下面的是看到的比较好的地址: Android各种Adapter的用法:                 http://my.oschina.net/u/658933/blog/372151 Andro ...

  6. ant 的详细的入门教程

    Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一.            ...

  7. 使用.net Reflector手动修改单个dll文件

    在项目中修改bug会存才版本混乱的问题,加上dll中的依赖项目比较多,想要修改单个dll文件中的少量代码是很麻烦的. 可以使用Reflector和Reflexil可以手动修改单个dll文件,我使用的是 ...

  8. [原] XAF How to Edit multiple objects in a ListViewAndDetailView

    2014年好久没有更新Blog了,工作调换了,很少用XAF,但还是很关注XAF的发展和学习,对中国的中小企业数据管理软件开发真的太实用了!! 功能比较简单,但很实用,直接上图和代码! ListView ...

  9. c#编程指南(十) 平台调用P-INVOKE完全掌握, 字符串和指针

    可以说新手使用P-INVOKE最开始的头疼就是C#和C++的字符串传递,因为这里涉及到两个问题. 第一:C#的string和C++的字符串首指针如何对应. 第二:字符串还有ANSI和UNICODE(宽 ...

  10. PyQt4学习资料汇总

    一个月前研究了下PyQt4,感觉比较不错.相比wxpython,界面美观了很多,并且将界面设计与代码逻辑很好的分离了开来.关于PyQt4的资料也不少,这里我将我找到的资料汇总一下,以防自己以后忘得一干 ...