以前很多时候会开玩笑,说什么,三天学会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. 使用hibernate可以优化的地方

    a.  在查询字符串中,应该总是使用jdbc的占位符?,或使用使用命名参数:,不要自查询中使用字符串值来代替非常量值. b.  Flush会影响性能,频繁刷新影响性能,尽量减少不必要的刷新. c.   ...

  2. POJ 2151 Check the difficulty of problems (概率DP)

    题意:ACM比赛中,共M道题,T个队,pij表示第i队解出第j题的概率 ,求每队至少解出一题且冠军队至少解出N道题的概率. 析:概率DP,dp[i][j][k] 表示第 i 个队伍,前 j 个题,解出 ...

  3. MemCached 安装笔记

    安装步骤: 1. 下载libevent & memcached 源码包 分别把memcached和libevent下载回来,放到 /tmp 目录下: # cd /tmp     # wget ...

  4. oracl 创建用户

    -- Create the user create user ADMIN  default tablespace SYSTEM  temporary tablespace TEMP  profile ...

  5. XAF 官方问题笔记

    1.How to print report direct, and print preview via an simple action? 如何通过一个按钮直接打印报表或者打印预览报表 https:/ ...

  6. jsti 和EL用法注意点

    今天使用stl 结合El做jsp页面展现,出现了个问题,怎么调也调不好,最后将jstl的源码拿来跟踪调了一下才明白其中的道理. 在使用jstl tag <c:forEach var=" ...

  7. 统一SDK接入(U8SDK)——总体思路和架构

    题记:很多做游戏开发的人,估计都或多或少地接过渠道SDK,什么UC,当乐,91,小米,360……据统计国内市场当前不下于100家渠道,还包括一些没有SDK的小渠道.每个渠道SDK接入的方法呢,多是大同 ...

  8. 基于EasyUi ComBotree树修改 父节点选择问题

    本人在使用 Easy UI 期间发现了一个不太适合项目的bug,可能也不算bug把 . 毕竟不同项目背景 取舍不同. 我在做网元树选择的时候  发现当选取父节点后,子节点都会被选择  返回  .但是如 ...

  9. php学习笔记2016.1

    基本类型    PHP是一种弱类型语言.      PHP类型检查函数   is_bool()    is_integer()  is_double()  is_string()   is_objec ...

  10. shell 知识

    解压 tar.bz2文件 bunzip2 linux-2.6.13.tar.bz2 | tar xvf -