《JAVA 从入门到精通》 - 正式走向JAVA项目开发的路
以前很多时候会开玩笑,说什么,三天学会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项目开发的路的更多相关文章
- 《Java从入门到精通》src0-8
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello wo ...
- 《java从入门到精通》学习记录
目录 <Java从入门到精通>学习记录 3 基础的基础部分: 3 一. 常量与变量 3 1. 掌握: 3 (1) .常量与变量的声明方式: 3 (2) .变量的命名规则: 3 (3) .变 ...
- cucumber java从入门到精通(4)Scenario Outline及数据驱动
cucumber java从入门到精通(4)Scenario Outline及数据驱动 到目前为止,我们的TodoList类工作良好,不过离我们的预期--任务清单系统还是有不少差距,究其原因不过如下: ...
- cucumber java从入门到精通(3)简单实现及断言
cucumber java从入门到精通(3)简单实现及断言 上一节里我们定义了step的java代码实现文件,step就是测试步骤及断言的集合,我们先定义出来,以后可以驱动开发以及在持续集成时重用. ...
- cucumber java从入门到精通(2)用代码定义步骤
cucumber java从入门到精通(2)用代码定义步骤 上一节里我们定义了feature文件,feature文件就是自然语言描述的用例文件,它有一定的章法,具体的潜规则是: 使用Feature关键 ...
- cucumber java从入门到精通(1)初体验
cucumber java从入门到精通(1)初体验 cucumber在ruby环境下表现让人惊叹,作为BDD框架的先驱,cucumber后来被移植到了多平台,有cucumber-js以及我们今天要介绍 ...
- ARKit从入门到精通(11)-ARKit开发常见问题及解决方案
转载请注明出处:ARKit从入门到精通(11)-ARKit开发常见问题及解决方案 本文主要介绍ARKit开发过程中一些常见问题 1.ARKit框架无法导入问题 2.ARKit运行黑屏或者白屏问题:Un ...
- Java从入门到精通一步到位!
Java作为近几年来非常火的编程语言,转行来做Java的人不计其数,但如今真正的人才仍然匮乏,所以学习Java一定要有一个系统的学习规划课程.阿里云大学帮您规划Java学习路线可以帮助您从一个小白成长 ...
- 【入门到精通】❤️「Java工程师全栈知识路线」
持续更新中- Vue前端开发 章节 内容 实践练习 Vue.js高效前端开发 • (实践练习) 第1章 Vue.js高效前端开发 • [ 一.初识Vue.js ] 第2章 Vue.js高效前端开发 • ...
随机推荐
- IP地址框
//IP地址框 // 此段代码:独立的获取本机IP地址和计算机名 WORD wVersionRequested; WSADATA wsaData; char name[255]; CString ip ...
- css两列自适应布局的多种实现方式及原理。
两列布局是非常常见的需求在实际项目中,实现的方式也有很多.究其原理也都不算复杂.这里主要提出几种实现方式和原理. html页面基本布局如下代码所示: 1 <div class="mai ...
- Django-数据模型
修改model.py文件 from django.db import models # Create your models here. class Question(models.Model): q ...
- VC 单文档视图分割
http://blog.csdn.net/smartwhitehorse/article/details/6707183 主要使用类:CSplitterWnd 问题:分割线的固定,需要重写CSplit ...
- DB2 错误信息码
000 00000 SQL语句成功完成 01xxx SQL语句成功完成,但是有警告 +012 01545 未限定的列名被解释为一个有相互关系的引用 +098 01568 动态SQL语句用分号结束 +1 ...
- .PRT extension and multiple NX versions
http://nxway.blogspot.ca/2007/10/prt-extension-and-multiple-nx-versions.html To open prt files with ...
- ORA-12569: TNS: 包校验和失败解决方法一例
经反复实验,发现OracleMTSRecoveryService服务使用端口1521,而这个端口默认是oracle数据库访问的监听端口.所以有两个办法,一是改变oracle数据库访问的监听端口,二是改 ...
- 无法导入以下密钥文件: xxxx.pfx,该密钥文件可能受密码保护 的解决方案
无法导入以下密钥文件: xxxx.pfx,该密钥文件可能受密码保护.若要更正此问题,请尝试再次导入证书,或手动将证书安装到具有以下密钥容器名称的强名称 CSP: VS_KEY_A5A29909FF6D ...
- [Java基础]java中this和super
一.this关键字 1.this概念 (参考:http://www.cnblogs.com/xdp-gacl/p/3636071.html) this是一个引用,它指向自身的这个对象,它的内存分析 ...
- 条件随机场理论分析CRF(Conditional Random Field)