java初级学习_java初级学习架构 - CSDN
  • Java初级学习

    2020-05-21 16:38:26
    Java----多线程初学习 概念----程序 进程 线程 程序:数据和指令的有序集合,静态概念 进程:程序的一次独立执行过程,系统资源分配的单位 多进程:操作系统能够同时运行多个程序 线程:程序内部的一条执行路径,是...

    Java----多线程初学习

    概念----程序 进程 线程

    • 程序:数据和指令的有序集合,静态概念
    • 进程:程序的一次独立执行过程,系统资源分配的单位
    • 多进程:操作系统能够同时运行多个程序
    • 线程:程序内部的一条执行路径,是CPU调度和执行的单位
    • 多线程:在同一个应用程序中多条执行路径同时进行
    • 线程和进程的区别和联系
      每个进程都有独立的代码和数据空间(进程上下文),进程间的切换开销大
      同一进程内的多个线程共享相同的代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换的开销小。一个进程至少包含一个线程。
      ps:真正的多线程是指有多个cpu,多核。
      而模拟出来的多线程是在一个cpu情况下,快速切换任务进程,造成同时执行的错觉。
      例如
      QQ.exe运行时可以同时发送图片,下载文件,好友视频等,这即为多线程
      而多进程如下
      ![通过资源管理器查看多线程](https://img-blog.csdnimg.cn/20200519162930675.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTc2ODY3OA==,size_16,color_FFFFFF,t_70
      实现线程
    • 继承Thread类
    • 实现runnable接口

    ``

    - 继承thread类

    
    

    public class Text328 extends Thread{//创建一个自定义线程类Text328继承MyThread
    public void run() {//线程的执行代码
    super.run();
    System.out.println(“这是线程”);
    }
    public static void main(String[] args) {
    Text328 mythread=new Text328();
    mythread.start();//调用start()方法执行线程
    System.out.println(“运行结束!”);//线程的调用具有随机性
    }
    }
    //当执行一个线程程序时,就会自动产生一个线程,主方法是在这个线程上运行的
    //若不启动其他线程,则该程序为单线程程序。
    //主方法线程启动由Java虚拟机负责,开发人员自己负责启动自己的的线程

    //如果start()方法调用一个已经启动的线程,系统会抛出IllegalThreadStateException,所以写出改进版

    
    
    
    

    public class MyThread01 extends Thread {
    public void run() {
    try {
    for(int i=0;i<5;i++) {
    int time=(int)(Math.random()*1000);
    Thread.sleep(time);
    System.out.println(“当前线程名称”+Thread.currentThread().getName());
    }
    }catch(InterruptedException e) {
    e.printStackTrace();
    }
    }
    public static void main(String[] args) {
    try {
    MyThread01 mythread = new MyThread01();
    mythread.setName(“firstThread”);
    mythread.start();
    for (int i = 0;i<5;i++) {
    int time = (int) (Math.random() * 1000);
    Thread.sleep(time);
    System.out.println(“主线程名称” + Thread.currentThread().getName());
    }
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }

    }

    
    

    在这里插入图片描述
    这种采用随机数延时调用线程的方法又称异步调用,除了异步调用外,同步执行线程start()方法的顺序也不代表线程启动的顺序。

    
    
    
    

    public class Text328 extends Thread{//创建一个自定义线程类Text328继承MyThread
    private int i;
    public Text328(int i) {
    super();
    this.i=i;
    }
    public void run() {//线程的执行代码

    
    
    	System.out.println(i);
    }
    public static void main(String[] args) {
        	Text328 mythread01=new Text328(55);
        	Text328 mythread02=new Text328(88);
        	Text328 mythread03=new Text328(99);
        	Text328 mythread04=new Text328(45);
        	Text328 mythread05=new Text328(72);
        	mythread01.start();//调用start()方法执行线程
        	mythread02.start();
        	mythread03.start();
        	mythread04.start();
        	mythread05.start();
    

    }
    }

    
    

    在这里插入图片描述

    - 实现Runnable接口

    在这里插入图片描述
    两种方法比较:

    线程的生命周期

    主要有七种:
    出生状态:调用start()方法前
    就绪状态:调用start()方法后
    运行状态:得到系统资源后
    等待状态:调用wait()方法后,而后唤醒需要调用notify()方法
    休眠状态:调用sleep()方法后
    *阻塞状态:*在运行状态下发出输入/输出请求后,在其等待输入输出结束时,线程进入就绪状态
    死亡状态:run()方法执行完毕后
    总的来说,一般在就绪状态和运行状态下来回。
    斜体状态为线程会处于就绪状态,用以下方法可以使线程再次进入运行状态

    • notify()
    • notifyAll()
    • interrupt()
    • 线程的休眠时间结束
    • 输入输出结束

    多线程共享数据

    展开全文
  • 如何学好java基础

    千次阅读 多人点赞 2018-05-22 09:48:08
    一方面很努力学习,一方面又觉得不踏实",我感同身受.觉得文章写得不错,在此献给一些在java中努力修炼的道友,希望能有所收获.这是文章链接:https://mp.weixin.qq.com/s/IU_xCCGSRbEQQLkpqpaB3A文章内容我也全部...
    今天在公众号偶然发现这么一篇文章,对于笔者谈的:"一方面很努力学习,一方面又觉得不踏实",我感同身受.觉得文章写得不错,在此献给一些在java中努力修炼的道友,希望能有所收获.
    这是文章链接:https://mp.weixin.qq.com/s/IU_xCCGSRbEQQLkpqpaB3A
    文章内容我也全部copy过来:

    近日里,很多人邀请我回答各种j2ee开发的初级问题,我无一都强调java初学者要先扎实自己的基础知识,那什么才是java的基础知识?又怎么样才算掌握了java的基础知识呢?这个问题还真值得仔细思考。


    我做j2ee开发已经超过十载,作为过来人,心路历程估计和大家差不多。编码的前几年,很长一段时间觉得java简单,开发实现各种功能都很轻松,代码写起来根本不费劲(主要是因为写的代码都是一些功能业务逻辑)。但同时自己心里明白,自己其实没有什么水平,自己这3、4年以来学懂的东西就那么多,其他人几个月就可以学会,自己的竞争力在哪里?这种矛盾的心理,困扰了我非常长的时间,非常的苦恼!总有一种报国无门无处发力的感觉。


    这个时期,热衷了使用各种框架,各种api,常以今天学习了某个api,组件,框架的使用就觉得自己学到了东西,设计模式也看过不止一次,但都没有啥感觉。一方面很努力学习,一方面又觉得不踏实,因为例如这个api我知道而你不知道,但我告诉你之后你就知道了,那我比你的优势在哪里呢?苦恼*2


    过了很长一段这种惶惶不可终日的日子,决定自己要改变,改变的方向就是阅读自己用到的java相关的源代码,看看jdk是如何实现的。就从基本的数据结构看,然后看多线程相关,在学习前台等等。写的代码还是那些代码,代码还是那么简单,但我力求做到知道代码背后的真相,这就是我最开始努力的方向。于是不再把时间都花在追求各种新框架、新API的使用上,每天都花时间在看实现原理上。就这样过了大半年左右,终于不再迷茫,不会在觉得自己只懂api的使用,觉得自己没有那么肤浅了,说脱胎换骨也不为过。那段时间,是我成长最快的时期,也是最充实的一段时光。


    Talk is cheap,show me the code。举例说明大家会比较有感觉。


    如学习了hashmap的源代码知道了工作原理之后,使用hashmap


    代码还是那个代码,但我已经知道了hashmap背后的东西

    • 数据结构是链表的数组(注:后面的版本为了提升性能,已经是改成链表或者树(节点较多)了)

    • 思想上是空间换时间的算法

    • 构造函数上有容量和负载因子2个参数以及作用

    • 决定性能的是key的hashcode是否够快、结果够分散(不分散就会变成链表的性能了),和扩容的开销(什么时候扩容,和负载因子有关)

    然后写代码的时候,如果知道了最终的容量(尤其是数据量大的时候),我都会指定初始化容量,类似如下


    如果工作中某个map使用特别多,性能还需要继续优化,我就会考虑从以下方面优化


    如果key是自己定义的对象,那么hashcode方法是否够快(最少应该缓存保证只计算一次,而且放入之后不能改变,决定hashcode的字段不能改变)? hash的结果是否够分散?


    可以考虑调小负载因子,花更多的空间来换时间


    学习源代码的时候,特别有意思,你会强烈感觉到一个词:举一反三!触类旁通! 学习api使用的时候,如果你只知道使用不知道原理,很难举一反三,感觉的是死记硬背。但学习了原理之后,知识成体系后,很容易举一反三,学的越多就容易,还是以hashmap为例,我举一个hashmap反三个点。


    1、你会知道但凡有数组的数据结构,构造函数都有一个容量的初始化参数(或者说构造函数有初始化容量的可能都是数组的数据结构)。构造函数如下


    你就会知道,数组扩容很耗性能(数据量大容易oom),尽量指定容量。


    2、算法是空间换时间,还有没有其他算法是这种思想的?你最少能找到一个桶排序。


    3、数据库的分库分表,思路和hashmap大同小异


    4、各种分布式的hash一致性算法,第一步都是创建一个最大的数组(Integer.MAX_VALUE),就是避免了hashmap最耗性能的扩容运算。


    学习了hashmap之后,你很自然就会去了解其他的map,如TreeMap,LinkedHashmap(超级有用),HashTable,ConcurrentSkipListMap(算法思路很有意思),ConcurrentHashMap等,你会知道set就是用map做的,都不需要学。到了这步,map相关就可以暂告一段落。


    在学习中,我发现思想上的东西是最重要的,你理解了思想,一下子就豁然开朗了,在也不需要死记硬背了。如学习CAS的时候,大家都知道这是一种指令级的免锁实现。看代码的时候,我一度疑惑为什么会有个while死循环(原谅我天资驽钝)


    后来从思想上理解,才知道乐观锁的概念,就是很乐观,假设你不会出错,但你要是出错了我就重试有办法给你修复,对应的就是悲观锁,就是很悲观,觉得不锁就会出错,如synchronize关键字和reentrantlock。这体现了2种不同截然不同的管理思想。这种思想经常体现在多个系统集成的设计,有些时候如果你用悲观的思想设计,实现起来很麻烦或者无法实现,但如果你用乐观的思想,减少出错条件,然后出错了能解决,代价就会小很多。


    说了这么多,我想说的就是,j2ee的基础知识就是你做项目中代码背后的东西。提高自己水平的方法很简单,就是把大部分时间去了解实现原理,了解思想,让自己的知识串起来,形成体系。j2ee的知识特别多,学得人想哭,千万不要一开始把时间花在各种框架、组件的使用上,在我看来那是本末倒置。简单来说:先修内功再练招式。


    我觉得重要的、工作会用得到的知识就是一个请求从前台到后台处理的过程需要用到的东西,最少包括以下点:js,html,css,ajax,ajax跨域,跨站脚本,web缓存,web优化,nginx,apache作用,鉴权方式,cookie,session,servlet,filter,基本数据结构,线程池,线程并发,缓存,io等等,知识点非常多。如你前台用jq,你应该了解他的选择器和ajax是如何实现的(其实去了解就会发现不复杂)?而不是只是会用。后台你用springmvc,你要了解他是如何工作,每一个配置是做什么,为什么?


    j2ee知识点特别多,每一个都能写很多,我也在不断学习中。具体要写我还真不知道如何下手,我就列举一下我觉得基础的东西(面试的时候问的问题),有简单有难,你觉得偏可能是你没有做过这块的开发或者做得比较浅:


    • map有哪些,特点和使用场景?(只知道hashmap,hashtable是不够的。。。)

    • 哪些方面会影响hashmap的性能?

    • 线程安全的map有哪些,concurrenthashmap是如何实现线程安全的(jdk1.8大不同)?

    • 锁有哪几种?

    • 公平锁,读写锁等如何实现?

    • synchronize能加在哪些地方?什么区别?

    • 死锁的形成条件?现在很少死锁了,很少问

    • 原子数据对象的原理?

    • reentrantlock相关知识,condition如何使用?(很重要的知识点,强烈推荐阅读ArrayBlockingQueue源码,教科书般)

    • volatile的相关知识(内存屏障,重排)

    • ThreadLocal原理和使用?(超级有用的知识点,工作中使用很多,让代码漂亮很多,后面专门开贴写)

    • 多个线程同步等待?(CountDownLatch,CyclicBarrier,Semaphore信号量很多语言都有,实际上使用不是很多,线程池就可以实现大部分等待功能)

    • 线程池?(种类,重要的方法,这个一般是使用层面,简单)

    • 动态代理?反射?内省?(考察知识面)

    • session相关知识?和cookie关系?分布式session实现原理?

    • cookie相关知识?有哪些属性?(有些属性很有用,只是我们很少留意而已!)

    • nginx,apache 实际项目能做哪些?(鉴权,转发,缓存,反向代理等)和tomcat什么关系?最少了解

    • ajax跨域原因?解决方式?(重点知识,做SE避免不了的问题。这里很多知识点。)

    • jsonp原理?后台需要改动吗?(jsonp虽然现在落伍了,但还是会问问)

    • web优化知识点?(常规知识点)

    • 前台缓存相关?(200cache,304,ajax缓存,如何实现缓存)

    一列举就根本停不下来了。。。其他的spring框架的东西也很多,还有jvm的东西,系统集成相关,数据库相关,io做得很少也不懂问,后面再慢慢把我的学习过程和偶得写下来。很多东西我也是了解个大概,就是看看你有没有学习过,不断学习是程序员最重要的特征。


    我不算高手,只能算一个合格的老程序员。这里只是说了一下自己之前学习的方向和列举了几个学习中的例子,大家见仁见智。帖子也是针对迷茫的初学者有感而发,希望能帮助到大家。


    最后我总结一下:初学者先广在精,关注代码背后的实现,关注内功修炼,了解实现原理和思想,形成自己完整的技术体系,知识成片之后就容易触类旁通,进步的速度就会越来越快。


    最后以我在每一个项目组和开发人员聊天都会说的几个例子结尾:“少林功夫里面有功和拳之分,马步功,石锁功是功,蛇拳猴拳是拳,你不可能练会了蛇拳猴拳就能打人,你必须先重点练功。乔峰在聚贤庄用太祖长拳把大家打得落花流水,我们用太祖长拳就只是个广播体操。同样,我们要分清编程里面那些是功那些是拳,代码背后的实现和思想是功,各个框架、api使用是拳。初学者应该大部分时间花在练功上,功到了拳自然就有了,切勿本末倒置。”谢谢大家阅读!


    展开全文
  • Java学习教程,Java基础教程(从入门到精通)

    万次阅读 多人点赞 2019-03-19 12:32:06
    你好,欢迎来到C语言中文网阅读“Java 教程”,你将享受到免费的 Java 学习资料,以及良好的阅读体验。 这套教程适用于没有任何 Java 基础,或者基础薄弱的学员,它通俗易懂,并且非常全面,30 天从入门到精通不是...

    你好,欢迎来到C语言中文网阅读“Java 教程”,你将享受到免费的 Java 学习资料,以及良好的阅读体验。

    这套教程适用于没有任何 Java 基础,或者基础薄弱的学员,它通俗易懂,并且非常全面,30 天从入门到精通不是神话。

    关于 Java 语言

    由于 JVM 的支持,使得 Java 成为一种跨平台的编程语言,一次编写,到处运行;换句话说,一段 Java 代码可以不加修改地在 WindowsLinuxMac OSUNIX 等平台运行。JVM 是重点学习内容。

    在世界编程语言排行榜中,近年来 Java 一直稳居第一名,比第二名的C语言高出几个百分点。
     

    世界编程语言排行榜
    图:2018 年 09 月份世界编程语言排行榜


    Java 最初是由 SUN 公司推出的,后来 SUN 公司被 Oracle 公司收购,Java 的版权也就归属了 Oracle。Java 的官方网址是 https://www.java.com/,你可以在此下载最新版本,关注最新资讯。

    Java 是一门半编译型的语言,Java 源码先被编译为字节码文件(中间文件),然后再由虚拟机(JVM)解释执行,这肯定比直接编译成二进制文件的运行速度要慢一些。

    不过 Java 经过了多年的性能调优,再加上即时编译技术(JIT)的加持,性能已经相当出色了,甚至成了传统编译器的竞争对手,某些情况下甚至还超出了传统编译器(整体上还是不及 C/C++ 的)。

    Java 的应用

    Java 是一门用途广泛的语言,不但可以用来开发网站后台、PC 客户端和 Android APP,还在数据分析、网络爬虫、云计算领域大显身手。

    不过,Java 还是与目前最火热的机器学习(人工智能)失之交臂,这个领域是 Python 的天下。

    Java 学习建议

    从学术的角度讲,Java 是一门面向对象的编程语言,初学者需要花费不少时间来熟悉面向对象的概念、语法和编程思想,有不理解的地方请大家一定要坚持,多花时间编写代码自然会豁然开朗。只有一步一个脚印,踏踏实实学习,才能从零基础到入门,再到精通。

    大家在学习的过程中也要多看几套 Java 教程,不要死啃一本书,这样才能才能博采众长,进步更快。

    第1章 Java入门基础及环境搭建

    1.Java简介

    2.Java JDK下载与安装教程

    3.Java JDK环境变量配置

    4.Java程序输出“你好 Java”

    5.Java程序的基本要素

    6.Java编程规范

    7.Java Eclipse下载安装教程

    8.Java如何创建项目

    9.Java修改Eclipse编辑器字体大小

    10.Java Eclipse如何调试代码

    第2章 Java程序设计基础

    1.Java常量

    2.Java变量声明和变量赋值

    3.Java变量的作用域

    4.Java数据类型

    5.Java算术运算符

    6.Java赋值运算符

    7.Java逻辑运算符

    8.Java关系运算符

    9.Java自增和自减运算符

    10.Java位运算符

    11.Java条件运算符

    12.Java运算符优先级

    13.Java数据类型转换

    第3章 Java流程控制语句

    1.Java语句

    2.Java if else语句

    3.Java switch case语句

    4.Java根据出生日期计算星座

    5.Java while和do whlie语句

    6.Java for语句

    7.Java输出九九乘法表

    8.Java foreach语句

    9.Java return语句

    10.Java break语句

    11.Java continue语句

    12.Java判断闰年平年并输出某月的天数

    13.Java输出杨辉三角形

    第4章 Java字符串处理

    1.Java定义字符串

    2.Java连接字符串

    3.Java获取字符串长度

    4.Java转换大小写

    5.Java去除空格

    6.Java提取子字符串

    7.Java分割字符串

    8.Java截取新闻标题

    9.Java字符串的替换

    10.Java字符串的比较

    11.Java查找字符串

    12.Java校验文件名和邮箱地址

    13.Java批量替换字符串

    14.Java字符串的加密解密

    15.Java StringBuffer类

    16.Java替换特殊字符

    17.Java正则表达式

    18.Java正则表达式验证电话号码

    19.Java正则表达式验证IP地址

    第5章 Java数字和日期处理

    1.Java Math类的常用方法

    2.Java生成随机数

    3.Java数字格式化

    4.Java大数字运算

    5.Java时间日期的处理

    6.Java日期格式化

    7.Java计算课程结束的日期

    8.Java日期查询

    第6章 Java内置包装类

    1.Java Object类

    2.Java Integer类

    3.Java Float类

    4.Java Double类

    5.Java Number类

    6.Java Character类

    7.Java Boolean类

    8.Java Byte类

    9.Java System类

    第7章 Java数组处理

    1.Java数组简介

    2.Java一维数组

    3.Java统计商品信息

    4.Java二维数组

    5.Java多维数组

    6.Java比较数组

    7.Java数组填充

    8.Java数组查找

    9.Java复制数组

    10.Java数组排序:sort()方法

    11.Java数组排序:冒泡排序法

    12.Java数组排序:快速排序法

    13.Java数组排序:选择排序法

    14.Java数组排序:直接插入法

    15.Java商品信息查询

    第8章 Java类和对象

    1.Java面向对象概述

    2.Java认识类和对象

    3.Java类的定义

    4.Java类的属性

    5.Java创建一个学生类

    6.Java成员方法

    7.Java this关键字

    8.Java对象的创建

    9.Java访问对象的属性和行为

    10.Java对象的销毁

    11.Java用户修改密码

    12.Java访问控制修饰符

    13.Java static 静态修饰符

    14.Java final修饰符

    15.Java main()方法

    16.Java方法的可变参数

    17.Java构造方法

    18.Java查询个人信息

    19.Java析构方法

    20.Java包(package)

    21.Java使用自定义包

    第9章 Java继承和多态

    1.Java类的封装

    2.Java封装图书信息类

    3.Java类的继承

    4.Java super关键字

    5.Java对象类型转换和强制对象类型转换

    6.Java方法重载

    7.Java方法重写

    8.Java多态性

    9.Java抽象类

    10.Java接口

    11.Java接口和抽象类的区别

    12.Java内部类:内部类简介

    13.Java内部类:实例内部类

    14.Java内部类:静态内部类

    15.Java内部类:局部内部类

    16.Java匿名类

    17.Java利用内部类实现多重继承

    第10章 Java异常处理

    1.Java中的异常

    2.Java异常处理机制

    3.Java try catch语句

    4.Java计算平均成绩

    5.Java try catch finally语句

    6.Java声明抛出异常

    7.Java自定义异常

    8.Java验证用户信息

    9.Java完善除法运算的错误信息

    第11章 Java集合、泛型和枚举

    1.Java集合类的概念

    2.Java Collection接口

    3.Java List集合

    4.Java Set集合

    5.Java Map集合

    6.Java Collection类

    7.Java泛型

    8.Java图书信息查询

    9.Java枚举

    第12章 Java反射机制

    1.Java反射机制的概念

    2.Java通过反射访问构造方法

    3.Java通过反射访问方法

    4.Java通过反射访问成员变量

    5.Java在远程方法中使用反射机制

    第13章 Java输入/输出流

    1.Java流的概念

    2.Java系统流

    3.Java File类

    4.Java动态读取文件内容

    5.Java字节流的使用

    6.Java字符流的使用

    7.Java保存图书信息

    第14章 Java多线程编程

    1.Java线程的概念

    2.Java多线程的实现方式

    3.Java线程的生命周期

    4.Java多线程之间访问实例变量

    5.Java非线程安全问题的解决方法

    6.Java多线程的同步机制

    7.Java curentThread()方法的作用

    8.Java isAlive()方法的作用

    9.Java sleep方法的作用

    10.Java getId()方法的作用

    11.Java yieId()方法如何使用

    12.Java停止线程

    13.Java暂停线程

    14.Java线程的优先级和执行顺序

    第15章 Java网络编程

    1.Java网络编程基础知识

    2.Java InetAddress类

    3.Java ServerSocket类和Socket类

    4.Java DatagramSocket类和DatagramPacket类

    5.Java URL类和URLConnection类

    展开全文
  • JAVA初级学习精要

    2005-03-23 16:38:00
    (一)、工具篇一、 JDK (Java Development Kit)JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK...

    (一)、工具篇

    一、 JDK (Java Development Kit)


    JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比Sun JDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。但不管怎么说,我们还是需要先把Sun JDK掌握好。

    1、 JDK的下载和安装
    JDK又叫做J2SE(Java2 SDK Standard Edition),可以从Sun的Java网站上下载到,http://java.sun.com/j2se/downloads.html ,JDK当前最新的版本是J2SDK1.4.2,建议下载该版本的JDK,下载页面在这里:http://java.sun.com/j2se/1.4.2/download.html。

    下载好的JDK是一个可执行安装程序,默认安装完毕后会在C:/Program Files/Java/目录下安装一套JRE(供浏览器来使用),在C:/j2sdk1.4.2下安装一套JDK(也包括一套JRE)。然后我们需要在环境变量PATH的最前面增加java的路径C:/j2sdk1.4.2/bin。这样JDK就安装好了。

    2、 JDK的命令工具
    JDK的最重要命令行工具:
    java: 启动JVM执行class
    javac: Java编译器
    jar: Java打包工具
    javadoc: Java文档生成器
    这些命令行必须要非常非常熟悉,对于每个参数都要很精通才行。对于这些命令的学习,JDK Documentation上有详细的文档。

    二、 JDK Documentation

    Documentation在JDK的下载页面也有下载连接,建议同时下载Documentation。Documentation是最最重要的编程手册,涵盖了整个Java所有方面的内容的描述。可以这样说,学习Java编程,大部分时间都是花在看这个Documentation上面的。我是随身携带的,写Java代码的时候,随时查看,须臾不离手。

    三、 应用服务器(App Server)

    App Server是运行Java企业组件的平台,构成了应用软件的主要运行环境。当前主流的App Server是BEA公司的Weblogic Server和IBM公司的Websphere以及免费的Jboss,选择其中一个进行学习就可以了,个人推荐Weblogic,因为它的体系结构更加干净,开发和部署更加方便,是Java企业软件开发人员首选的开发平台。下面简要介绍几种常用的App Server:

    1、 Tomcat
    Tomcat严格意义上并不是一个真正的App Server,它只是一个可以支持运行Serlvet/JSP的Web容器,不过Tomcat也扩展了一些App Server的功能,如JNDI,数据库连接池,用户事务处理等等。Tomcat被非常广泛的应用在中小规模的Java Web应用中,因此本文做一点下载、安装和配置Tomcat的介绍:

    Tomcat是Apache组织下Jakarta项目下的一个子项目,它的主网站是:http://jakarta.apache.org/tomcat/ ,Tomcat最新版本是Tomcat4.1.27,软件下载的连接是:http://www.apache.org/dist/jakarta/tomcat-4/binaries/

    下载Tomcat既可以直接下载zip包,也可以下载exe安装包(个人建议zip更干净些),不管哪种情况,下载完毕安装好以后(zip直接解压缩就可以了)。需要设置两个环境变量:

    JAVA_HOME=C:/j2sdk1.4.2
    CATALINA_HOME=D:/tomcat4 (你的Tomcat安装目录Wink

    这样就安装好了,启动Tomcat运行CATALINA_HOME/bin/startup.bat,关闭Tomcat运行shutdown.bat脚本。Tomcat启动以后,默认使用8080端口,因此可以用浏览器访问http://localhost:8080来测试Tomcat是否正常启动。

    Tomcat提供了两个Web界面的管理工具,URL分别是:
    http://localhost:8080/admin/index.jsp
    http://localhost:8080/manager/html
    在启用这两个管理工具之前,先需要手工配置一下管理员用户和口令。用一个文本工具打开CATALINA_HOME/conf/tomcat-users.xml这个文件,加入如下几行:

    <role rolename="manager"/>
    <role rolename="admin"/>
    <user username="robbin" password="12345678" roles="admin,manager,tomcat"/>

    这样用户“robbin”就具备了超级管理员权限。重新启动Tomcat以后,你就可以使用该用户来登陆如上的两个管理工具,通过Web方式进行Tomcat的配置和管理了。

    2、 BEA Weblogic
    Weblogic可以到BEA的网站上免费注册之后下载到最新的Weblogic8.1企业版,License可以免费使用1年时间,其实这已经完全足够了。Weblogic的下载连接:http://commerce.bea.com/index.jsp,Weblogic的在线文档:http://edocs.bea.com/

    3、 IBM Webshpere
    Websphere同样可以下载到免费的试用版本,到IBM的developerWorks网站可以看到Websphere试用产品的下载和相关的Websphere的资料,developerWorks中文网站的连接是:http://www-900.ibm.com/developerWorks/cn/wsdd/ ,Websphere的下载连接:http://www7b.software.ibm.com/wsdd/downloads/WASsupport.html

    4、 Jboss
    Jboss是免费开源的App Server,可以免费的从Jboss网站下载:http://www.jboss.org/index.html,然而Jboss的文档是不免费,需要花钱购买,所以为我们学习Jboss设置了一定的障碍。在Jdon上有几篇不错的Jboss配置文档,可以用来参考:http://www.jdon.com/idea.html

    四、 Java应用的运行环境

    Java的应用可以简单分为以下几个方面:

    1、 Java的桌面应用
    桌面应用一般仅仅需要JRE的支持就足够了。

    2、 Java Web应用
    Java的Web应用至少需要安装JDK和一个web容器(例如Tomcat),以及一个多用户数据库,Web应用至少分为三层:
    Browser层:浏览器显示用户页面
    Web层:运行Servlet/JSP
    DB层:后端数据库,向Java程序提供数据访问服务

    3、 Java企业级应用
    企业级应用比较复杂,可以扩展到n层,最简单情况会分为4层:
    Browser层:浏览器显示用户页面
    Client层:Java客户端图形程序(或者嵌入式设备的程序)直接和Web层或者EJB层交互
    Web层:运行Servlet/JSP
    EJB层:运行EJB,完成业务逻辑运算
    DB层:后端数据库,向Java程序提供数据访问服务

    4、 Java嵌入式应用
    Java嵌入式应用是一个方兴未艾的领域,从事嵌入式开发,需要从Sun下载J2ME开发包,J2ME包含了嵌入式设备专用虚拟机KVM,和普通的JDK中包含的JVM有所不同。另外还需要到特定的嵌入式厂商那里下载模拟器。

    (二)、书籍篇

    学习一门新的知识,不可能指望只看一本,或者两本书就能够完全掌握。需要有一个循序渐进的阅读过程。我推荐Oreilly出版的Java系列书籍。

    在这里我只想补充一点看法,很多人学习Java是从《Thinking in Java》这本书入手的,但是我认为这本书是不适合初学者的。我认为正确的使用这本书的方法应该是作为辅助的读物。《Thinking in Java》并不是在完整的介绍Java的整个体系,而是一种跳跃式的写作方法,是一种类似tips的方法来对Java很多知识点进行了深入的分析和解释。

    对于初学者来说,最好是找一本Java入门的书籍,但是比较完整的循序的介绍Java的语法,面向对象的特性,核心类库等等,在看这本书的同时,可以同步来看《Thinking in Java》,来加深对Java的理解和原理的运用,同时又可以完整的了解Java的整个体系。

    对于Java的入门书籍,蔡学镛推荐的是Oreilly的《Exploring Java, 2nd Edition》 或者《Java in a Nutshell,2nd Edition(针对C++背景)》,我并没有看过这两本书。其实我觉得电子工业出版社的《Java 2编程详解》或者《Java 2从入门到精通》就很不错。

    在所有的Java书籍当中,其实最最有用的,并不是O'reilly的 Java Serials,真正最最有用处是JDK的Documentation!几乎你想获得的所有的知识在Documentation里面全部都有,其中最主要的部分当然是Java基础类库的API文档,是按照package来组织的,对于每一个class都有详细的解释,它的继承关系,是否实现了某个接口,通常用在哪些场合,还可以查到它所有的public的属性和方法,每个属性的解释,意义,每个方法的用途,调用的参数,参数的意义,返回值的类型,以及方法可能抛出的异常等等。可以这样来说,所有关于Java编程方面的书籍其实都不过是在用比较通俗易懂的语言,和良好的组织方式来介绍Documentation里面的某个package里面包含的一些类的用法而已。所以万变不离其宗,如果你有足够的能力来直接通过Documentation来学习Java的类库,那么基本上就不需要看其他的书籍了。除此之外,Documentation也是编程必备的手册,我的桌面上有三个Documentation的快捷方式,分别是J2SDK1.4.1的Documentation,Servlet2.3的Documentation和J2SDKEE1.3.1的Documentation。有了这个三个Documentation,什么其他的书籍都不需要了。

    对于Java Web 编程来说,最核心的是要熟悉和掌握HTTP协议,这个就和Java无关了,在熟悉HTTP协议之后,就需要熟悉Java的实现HTTP协议的类库,也就是Servlet API,所以最重要的东西就是Servlet API。当然对于初学者而言,直接通过Servlet API来学习Web编程有很大的难度,我推荐O'reilly的《Java Server Pages 》这本书来学习Web 编程。

    EJB的书籍当中,《Enterprise JavaBeans, 2nd Edition》是一本很不错的书, EJB的学习门槛是比较高,入门很难,但是这本书完全降低了学习的难度,特别重要的一点是,EJB的学习需要结合一种App Server的具体实现,所以在学习EJB的同时,必须同步的学习某种App Server,而这本书相关的出了三本书,分别是Weblogic6.1,Websphere4.0和JBoss3.0上面部署书中例子的实做。真是既有理论,又有实践。在学习EJB的同时,可以边看边做,EJB的学习会变得很轻松。

    但是这本书也有一个问题,就是版本比较旧,主要讲EJB1.1规范和部分EJB2.0的规范。而Ed Roman写的《Mastering EJB 2.0》这本书完全是根据EJB2.0规范写的,深入浅出,覆盖了EJB编程的各个方面,并且还有很多编程经验tips,也是学习EJB非常推荐的书籍之一。

    如果是结合Weblogic来学习J2EE的话,《J2EE应用与BEA Weblogic Server》绝对是首选读物,虽然是讲述的Weblogic6.0,仍然值得购买,这本书是BEA官方推荐的教材,作者也是BEA公司的工程师。现在中文版已经随处可见了。这本书结合Weblogic介绍了J2EE各个方面的技术在Weblogic平台上的开发和部署,实践指导意义非常强。

    在掌握了Java平台基础知识和J2EE方面的知识以后,更进一步的是学习如何运用OO的方法进行软件的设计,那么就一定要学习“设计模式”。Sun公司出版了一本《J2EE核心模式》,是每个开发Java企业平台软件的架构师必备的书籍。这本书全面的介绍了J2EE体系架构的各种设计模式,是设计师的必读书籍。

    (三)过程篇

    每个人的学习方法是不同的,一个人的方法不见得适合另一个人,我只能是谈自己的学习方法。因为我学习Java是完全自学的,从来没有问过别人,所以学习的过程基本上完全是自己摸索出来的。我也不知道这种方法是否是比较好的方法,只能给大家提供一点参考了。

    学习Java的第一步是安装好JDK,写一个Hello World,? 其实JDK的学习没有那么简单,关于JDK有两个问题是很容易一直困扰Java程序员的地方:一个是CLASSPATH的问题,其实从原理上来说,是要搞清楚JRE的ClassLoader是如何加载Class的;另一个问题是package和import问题,如何来寻找类的路径问题。把这两个问题摸索清楚了,就扫除了学习Java和使用JDK的最大障碍。推荐看一下王森的《Java深度历险》,对这两个问题进行了深入的探讨。

    第二步是学习Java的语法。Java的语法是类C++的,基本上主流的编程语言不是类C,就是类C++的,没有什么新东西,所以语法的学习,大概就是半天的时间足够了。唯一需要注意的是有几个不容易搞清楚的关键字的用法,public,protected,private,static,什么时候用,为什么要用,怎么用,这可能需要有人来指点一下,我当初是完全自己琢磨出来的,花了很久的时间。不过后来我看到《Thinking in Java》这本书上面是讲了这些概念的。

    第三步是学习Java的面向对象的编程语言的特性的地方。比如继承,构造器,抽象类,接口,方法的多态,重载,覆盖,Java的异常处理机制。对于一个没有面向对象语言背景的人来说,我觉得这个过程需要花很长很长时间,因为学习Java之前没有C++的经验,只有C的经验,我是大概花了一个月左右吧,才彻底把这些概念都搞清楚,把书上面的例子反复的揣摩,修改,尝试,把那几章内容反复的看过来,看过去,看了不下5遍,才彻底领悟了。不过我想如果有C++经验的话,应该一两天时间足够了。那么在这个过程中,可以多看看《Thinking in Java》这本书,对面向对象的讲解非常透彻。可惜的是我学习的时候,并没有看到这本书,所以自己花了大量的时间,通过自己的尝试和揣摩来学会的。

    第四步就是开始熟悉Java的类库。Java的基础类库其实就是JDK安装目录下面jre/lib/rt.jar这个包。学习基础类库就是学习rt.jar。基础类库里面的类非常非常多。据说有3000多个,我没有统计过。但是真正对于我们来说最核心的只有4个,分别是
    java.lang.*;
    java.io.*;
    java.util.*;
    java.sql.*;

    这四个包的学习,每个包的学习都可以写成一本厚厚的教材,而O'reilly也确实是这样做的。我觉得如果时间比较紧,是不可能通过读四本书来学习。我觉得比较好的学习方法是这样的:
    首先要通读整个package的框架,了解整个package的class,interface,exception的构成,最好是能够找到介绍整个包框架的文章。这些专门介绍包的书籍的前几章应该就是这些总体的框架内容介绍。

    对包整体框架的把握并不是要熟悉每个类的用法,记住它有哪些属性,方法。想记也记不住的。而是要知道包有哪些方面的类构成的,这些类的用途是什么,最核心的几个类分别是完成什么功能的。我在给人培训的时候一般是一次课讲一个包,所以不可能详细的介绍每个类的用法,但是我反复强调,我给你们讲这些包的不是要告诉你们类的方法是怎么调用的,也不要求你们记住类的方法调用,而是要你们了解,Java给我们提供了哪些类,每个类是用在什么场合,当我遇到问题的时候,我知道哪个类,或者哪几个类的组合可以解决我的问题,That'all!,当我们具体写程序的时候,只要你知道该用哪个类来完成你的工作就足够了。编码的时候,具体的方法调用,是边写代码,边查Documentation,所有的东西都在Documentation里面,不要求你一定记住,实际你也记不住3000多个类的总共将近10万个方法调用。所以对每个包的总体框架的把握就变得极为重要。

    第五步,通过上面的学习,如果学的比较扎实的话,就打好了Java的基础了,剩下要做的工作是扫清Documentation里面除了上面4个包之外的其他一些比较有用处的类。相信进展到这一步,Java的自学能力已经被培养出来了,可以到了直接学习Documentation的水平了。除了要做GUI编程之外,JDK里面其他会有用处的包是这些:
    java.text.*;
    java.net.*;
    javax.naming.*;
    这些包里面真正用的比较多的类其实很少,只有几个,所以不需要花很多时间。

    第六步,Java Web 编程,Web编程的核心是HTTP协议,HTTP协议和Java无关,如果不熟悉HTTP协议的话,虽然也可以学好Servlet/JSP编程,但是达不到举一反三,一通百通的境界。所以HTTP协议的学习是必备的。如果熟悉了HTTP协议的话,又有了Java编程的良好的基础,学习Servlet/JSP简直易如反掌,我学习Servlet/JSP就用了不到一周的时间,然后就开始用JSP来做项目了。

    在Servlet/JSP的学习中,重头仍然是Servlet Documentation。Servlet API最常用的类很少,花比较少的时间就可以掌握了。把这些类都看一遍,多写几个例子试试。Servlet/JSP编程本质就是在反复调用这些类来通过HTTP协议在Web Server和Brower之间交谈。另外对JSP,还需要熟悉几个常用JSP的标记,具体的写法记不住的话,临时查就是了。

    此外Java Web编程学习的重点要放在Web Application的设计模式上,如何进行业务逻辑的分析,并且进行合理的设计,按照MVC设计模式的要求,运用Servlet和JSP分别完成不同的逻辑层,掌握如何在Servlet和JSP之间进行流程的控制和数据的共享,以及Web Application应该如何配置和部署。

    第七步,J2EE编程
    以上的学习过程如果是比较顺利的话,进行到这一步,难度又陡然提高。因为上面的知识内容都是只涉及一个方面,而像EJB,JMS,JTA等核心的J2EE规范往往是几种Java技术的综合运用的结晶,所以掌握起来难度比较大。

    首先一定要学习好JNDI,JNDI是App Server定位服务器资源(EJB组件,Datasouce,JMS)查找方法,如果对JNDI不熟悉的话,EJB,JMS这些东西几乎学不下去。JNDI其实就是javax.naming.*这个包,运用起来很简单。难点在于服务器资源文件的配置。对于服务器资源文件的配置,就需要看看专门的文档规范了,比如web.xml的写法,ejb-jar.xml的写法等等。针对每种不同的App Server,还有自己的服务资源配置文件,也是需要熟悉的。

    然后可以学习JTA,主要是要理解JTA对于事务的控制的方法,以及该在什么场合使用JTA。这里可以简单的举个例子,我们知道一般情况可以对于一个数据库连接进行事务控制(conn.setAutoCommit(false),....,conn.commit()),做为一个原子操作,但是假设我的业务需求是要把对两个不同数据库的操作做为一个原子操作,你能做的到吗?这时候只能用JTA了。假设操作过程是先往A数据库插一条记录,然后删除B数据库另一个记录,我们自己写代码是控制不了把整个操作做为一个原子操作的。用JTA的话,由App Server来完成控制。

    在学习EJB之前要学习对象序列化和RMI,RMI是EJB的基础。接着学习JMS和EJB,对于EJB来说,最关键是要理解EJB是如何通过RMI来实现对远端对象的调用的,以及在什么情况下要用到EJB。

    在学习完EJB,JMS这些东西之后,你可能会意识到要急不可待学习两个领域的知识,一个是UML,另一个是Design Pattern。Java企业软件的设计非常重视框架(Framework)的设计,一个好的软件框架是软件开发成功的必要条件。在这个时候,应该开始把学习的重点放在设计模式和框架的学习上,通过学习和实际的编程经验来掌握EJB的设计模式和J2EE的核心模式。

    J2EE规范里面,除了EJB,JMS,JTA,Servlet/JSP,JDBC之外还有很多很多的企业技术,这里不一一进行介绍了。

    另外还有一个最新领域Web Services。Web Services也完全没有任何新东西,它像是一种黏合剂,可以把不同的服务统一起来提供一个统一的调用接口,作为使用者来说,我只要获得服务提供者给我的WSDL(对服务的描述),就够了,我完全不知道服务器提供者提供的服务究竟是EJB组件,还是.Net组件,还是什么CORBA组件,还是其他的什么实现,我也不需要知道。Web Services最伟大的地方就在于通过统一的服务提供方式和调用方式,实现了整个Internet服务的共享,是一个非常令人激动的技术领域。Web Services好像目前还没有什么很好的书籍,但是可以通过在网络上面查资料的方式来学习。

    (四) 方法篇

    Java作为一门编程语言,最好的学习方法就是写代码。当你学习一个类以后,你就可以自己写个简单的例子程序来运行一下,看看有什么结果,然后再多调用几个类的方法,看看运行结果,这样非常直观的把类给学会了,而且记忆非常深刻。然后不应该满足把代码调通,你应该想想看如果我不这样写,换个方式,再试试行不行。记得哪个高人说过学习编程就是个破坏的过程,把书上的例子,自己学习Documentation编写的例子在运行通过以后,不断的尝试着用不同的方法实现,不断的尝试破坏代码的结构,看看它会有什么结果。通过这样的方式,你会很彻底的很精通的掌握Java。

    举个例子,我们都编过Hello World

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


    很多初学者不是很理解为什么main方法一定要这样来定义public static void main(String[] args),能不能不这样写?包括我刚学习Java的时候也有这样的疑问。想知道答案吗?很简单,你把main改个名字运行一下,看看报什么错误,然后根据出错信息进行分析;把main的public取掉,在试试看,报什么错误;static去掉还能不能运行;不知道main方法是否一定要传一个String[]数组的,把String[]改掉,改成int[],或者String试试看;不知道是否必须写args参数名称的,也可以把args改成别的名字,看看运行结果如何。

    我当初学习Java的时候就是这样做的,把Hello World程序反复改了七八次,不断运行,分析运行结果,最后就彻底明白为什么了main方法是这样定义的了。

    此外,我对于staic,public,private,Exception,try{ }catch {}finally{}等等等等一开始都不是很懂,都是把参考书上面的例子运行成功,然后就开始破坏它,不断的根据自己心里面的疑问来重新改写程序,看看能不能运行,运行出来是个什么样子,是否可以得到预期的结果。这样虽然比较费时间,不过一个例子程序这样反复破坏几次之后。我就对这个相关的知识彻底学通了。有时候甚至故意写一些错误的代码来运行,看看能否得到预期的运行错误。这样对于编程的掌握是及其深刻的。

    其中特别值得一提的是JDK有一个非常棒的调试功能,-verbose
    java –verbose
    javac –verbose 以及其它很多JDK工具都有这个选项
    -verbose 可以显示在命令执行的过程中,JVM都依次加载哪里Class,通过这些宝贵的调试信息,可以帮助我们分析出JVM在执行的过程中都干了些什么。

    另外,自己在学习过程中,写的很多的这种破坏例程,应该有意识的分门别类的保存下来,在工作中积累的典型例程也应该定期整理,日积月累,自己就有了一个代码库了。遇到类似的问题,到代码库里面 Copy & Paste ,Search & Replace,就好了,极大提高了开发速度。最理想的情况是把一些通用的例程自己再抽象一层,形成一个通用的类库,封装好。那么可复用性就更强了。

    所以我觉得其实不是特别需要例程的,自己写的破坏例程就是最好的例子,如果你实在对自己写的代码不放心的话,我强烈推荐你看看JDK基础类库的Java源代码。在JDK安装目录下面会有一个src.zip,解开来就可以完整的看到整个JDK基础类库,也就是rt.jar的Java源代码,你可以参考一下Sun是怎么写Java程序的,规范是什么样子的。我自己在学习Java的类库的时候,当有些地方理解的不是很清楚的时候,或者想更加清晰的理解运作的细节的时候,往往会打开相应的类的源代码,通过看源代码,所有的问题都会一扫而空。
    展开全文
  • Java工程师学习指南(初级篇)

    千次阅读 2019-12-30 00:17:05
    Java工程师学习指南 初级篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好。原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都是站在...
  • Java教程,全套Java基础视频教程

    万次阅读 多人点赞 2020-06-17 14:52:03
    深知广大爱好Java的人学习是多么困难,没视频没资源,上网花钱还老被骗。为此我呕心沥血整理了这套Java教程,不管你是不懂电脑的小白,还是已经步入开发的大牛,这套路线路你都值得拥有,小白看上面的视频可以成功...
  • java从入门到精通学习路线

    万次阅读 多人点赞 2018-11-12 18:12:44
    目前Java在许多行业的客户端方面的应用非常多,比如OA、邮箱、投票、金融、考试、物流、医疗、矿山等信息...对于java学习,一套专业系统的java学习路线图是不可少的,让你从入门到精通实现系统化!   第一阶段...
  • 一个适合java初级学习的网站

    千次阅读 2017-09-08 13:21:04
    如果你想快速学会java: 分享一个好网站 http://how2j.cn?p=16755
  • 目前,JAVA是开发人员的热宠,...和大家讨论成为一个JAVA初级程序员应该具有的知识,与大家共享。  个人认为想成为一个合格的JAVA初级程序员应该具备如下知识:  一、面向对象的知识:JAVA是一个面向对象的开发语言
  • java 入门学习

    千次阅读 2018-04-24 00:03:48
    1.java 平台无关 2.代码风格ALLMANS风格,(大括号独占一行)、kernighan 风格(左括号在上一行的行尾,有括号独占一行)。 3.标识符和关键字  3.1 标识符  3.1.1 标识符 :由字母、下划线、美元符号、数字组成长度...
  • Java初级工程师必读的书籍

    千次阅读 2018-06-14 11:50:14
    Java初级工程师必读的书籍 Java是一种计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的...
  • JAVA入门学习资料

    千次阅读 2006-11-03 00:24:00
    一、入门 《Java 2从入门到精通》- 推荐 《Thinking in Java》- 强烈推荐* O’reilly的Java编程基础系列 - 参考* 二、进阶 《Java Cook Book》- 非常推荐* (包含了Java编程的Tips,适合当做手册来查阅) 《O’...
  • 本人在这里抛砖引玉,和大家讨论成为一个JAVA初级程序员应该具有的知识,与大家共享。 个人认为想成为一个合格的JAVA初级程序员应该具备如下知识: 一、面向对象的知识:JAVA是一个面向对象的开发语言,因此熟悉面
  • java详细学习路线及路线图

    万次阅读 多人点赞 2020-08-06 10:27:23
    本文将告诉你学习Java需要达到的30个目标,学习过程中可能遇到的问题,及学习路线。希望能够对你的学习有所帮助。对比一下自己,你已经掌握了这30条中的多少条了呢? 路线 Java发展到现在,按应用来分主要分为三大...
  • 技术不同,简单的可以理解为:初级中级的只关注代码,编程。高级的就要考虑系统的架构,整体框架。 具体区别如下: 一、初级工程师 1、首先要学习java的基础知识。 不要被新技术迷惑,所谓万变不离其宗,新技术都...
  • JAVA初级开发职位

    2015-05-17 21:21:48
    JAVA初级开发或者实习生职位。 工作地点最好在上海 简单介绍下自己: 毕业好几年了,一直觉得自己是靠运气和勤奋行走江湖 虽然跌跌撞撞,但也一路走到今天 可是没有掌握什么技术一直是心中的遗憾 2014年9月开始在...
  • java初级阶段学习总结

    2016-05-16 00:12:18
    java阶段总结: 一:需要改进 1.在该阶段学习中和同学的交流不是很多,作为从事一个需要合作的行业,在今后的学习中我会多和身边同学交流项目经验,改变自己腼腆的性格,提高自己表达能力; 2.在学习过程中代码的...
  • java初级程序员成长之路

    千次阅读 2018-05-08 11:18:17
    立一个flag在三个月内,毕业之前成为一名合格的初级程序员经历的这些日子找工作的心塞经历,发现现在对于java程序员要求太高,应聘实习生感觉要求跟中高级java程序员一样什么前端后端要求至少都到懂,精通java基础,...
  • 一、什么是Java初级?  了解计算机系统、算法、编译原理等基本Java编程知识,就是初级;基本指向大学应届毕业生,刚参加社会从事Java开发工作的人; 二、学习的建议  能够在工作中实践自己的知识;也许有些同学...
  • Java工程师书单(初级、中级、高级)

    千次阅读 多人点赞 2017-08-02 14:11:20
    怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作一两年之后开始迷茫的程序员经常会问到的问题 ...
1 2 3 4 5 ... 20
收藏数 31,044
精华内容 12,417
热门标签
关键字:

java初级学习