白玩明子
白玩明子
关注数: 0
粉丝数: 15
发帖数: 41
关注贴吧数: 2
JAVA的面向对象编程--------课堂笔记 11.29 11.29 继承: 父类(SuperClass)和子类(SonClass)。 父类的非私有化属性和方法可以默认继承到子类。 Class Sonextends Father{ } 而如果父类中的私有方法被子类调用的话,则编译报错。 父类的构造方法子类不可以继承,更不存在覆盖的问题。(非构造方法可以) 如果子类访问父类的构造方法,则在编译的时候提示访问不到该方法。 JAVA中不允许多继承,一个类有且只有一个父类(单继承)。 JAVA的数据结构为树型结构,而非网状。(JAVA通过接口和内部类实现多继承) 方法的覆盖(overriding) 方法的重载并不一定是在一个类中:子类可以从父类继承一个方法,也可以定义一个同名异参的方法,也称为overloading。 当子类从父类继承一个无参方法,而又定义了一个同样的无参方法,则子类新写的方法覆盖父类的方法,称为覆盖。(注意返回值类型也必须相同,否则编译出错。) 如果方法不同,则成重载。 对于方法的修饰词,子类方法要比父类的方法范围更加的宽泛。 父类为public,那么子类为private则出现错误。 之所以构造方法先运行父类再运行子类是因为构造方法是无法覆盖的。 以下范围依次由严到宽: private :本类访问; default :表示默认,不仅本类访问,而且是同包可见。 Protected:同包可见+不同包的子类可见 Public :表示所有的地方均可见。 当构造一个对象的时候,系统先构造父类对象,再构造子类对象。 构造一个对象的顺序:(注意:构造父类对象的时候也是这几步) ① 递归地构造父类对象; ② 顺序地调用本类成员属性赋初值语句; ③ 本类的构造方法。 Super()表示调用父类的构造方法。 Super()也和this一样必须放在第一行。 This()用于调用本类的构造方法。 如果没有定义构造方法,那么就会调用父类的无参构造方法,即super()。 要养成良好的编程习惯:就是要加上默认的父类无参的构造方法。 思考:可是如果我们没有定义无参的构造方法,而在程序中构造了有参的构造方法,那么如果方法中没有参数,那么系统还会调用有参的构造方法么?应该不会。 多态:多态指的是编译时类型变化,而运行时类型不变。 多态分两种: ① 编译时多态:编译时动态重载; ② 运行时多态:指一个对象可以具有多个类型。 对象是客观的,人对对象的认识是主观的。 例: Animal a=new Dog();查看格式名称; Dog d=(Dog)a。声明父类来引用子类。 (思考上面的格式) 运行时多态的三原则:(应用时为覆盖) 1、 对象不变;(改变的是主观认识) 2、 对于对象的调用只能限于编译时类型的方法,如调用运行时类型方法报错。 在上面的例子中:Animal a=new Dog();对象a的编译时类型为Animal,运行时类型为dog。 注意:编译时类型一定要为运行时类型的父类(或者同类型)。 对于语句:Dog d=(Dog)a。将d强制声明为a类型,此时d为Dog(),此时d就可以调用运行时类型。注意:a和d指向同一对象。 3、 在程序的运行时,动态类型判定。运行时调用运行时类型,即它调用覆盖后的方法。 关系运算符:instanceof a instanceof Animal;(这个式子的结果是一个布尔表达式) a为对象变量,Animal是类名。 上面语句是判定a是否可以贴Animal标签。如果可以贴则返回true,否则返回false。 在上面的题目中: a instanceof Animal返回 True, a instanceof Dog也返回 True, instanceof用于判定是否将前面的对象变量赋值后边的类名。 Instanceof一般用于在强制类型转换之前判定变量是否可以强制转换。 如果Animal a=new Animal(); Dog d=Dog()a; 此时编译无误,但运行则会报错。 Animal a=newDog()相当于下面语句的功能: Animala=getAnimal(); Public staticAnimal.getAnimal; Return newDog(); 封装、继承、多态为面向对象的三大基石(特性)。 运行时的动态类型判定针对的是方法。运行程序访问的属性仍为编译时属性。 Overloading针对的是编译时类型,不存在运行时的多态。 习题:建立一个shape类,有circle和rect子类。 Shape类有zhouchang()和area()两种方法。 (正方形)squ为rect子类,rect有cha()用于比较长宽的差。 覆盖时考虑子类的private及父类的public(考虑多态),之所以这样是避免调用A时出现实际调用B的情况。而出现错误。 11.29下午讲的是教程上的Module6 Module6-7包括:面向对象高级、内部类、集合、反射(暂时不讲)、例外。 面向对象高级、集合和例外都是面向对象的核心内容。 面向对象高级: 修饰符: static:①可修饰变量(属性);②可修饰方法;③可修饰代码块。 Static int data语句说明data为类变量,为一个类的共享变量,属于整个类。 Int data为实例变量。 例: static intdata; m1.data=0; m1.data++的结果为1,此时m2.data的结果也为1。 Static定义的是一块为整个类共有的一块存储区域,其发生变化时访问到的数据都时经过变化的。 其变量可以通过类名去访问:类名.变量名。与通过访问对象的编译时类型访问类变量为等价的。 Publicstatic voidprintData(){} 表明此类方法为类方法(静态方法) 静态方法不需要有对象,可以使用类名调用。 静态方法中不允许访问类的非静态成员,包括成员的变量和方法,因为此时是通过类调用的,没有对象的概念。This.data是不可用的。 一般情况下,主方法是静态方法,所以可调用静态方法,主方法为静态方法是因为它是整个软件系统的入口,而进入入口时系统中没有任何对象,只能使用类调用。 覆盖不适用于静态方法。 静态方法不可被覆盖。(允许在子类中定义同名静态方法,但是没有多态,严格的讲,方法间没有多态就不能称为覆盖) 当static修饰代码块时(注:此代码块要在此类的任何一个方法之外),那么这个代码块在代码被装载进虚拟机生成对象的时候可被装载一次,以后再也不执行了。 一般静态代码块被用来初始化静态成员。 Static通常用于Singleton模式开发: Singleton是一种设计模式,高于语法,可以保证一个类在整个系统中仅有一个对象
从程序员到CTO的Java技术 在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了。但如果有清晰的指示图供参考还是非常不错的,这样我们清楚的知道我们大概处于那个阶段和水平。 Java程序员 高级特性 反射、泛型、注释符、自动装箱和拆箱、枚举类、可变 参数、可变返回类型、增强循环、静态导入 核心编程 IO、多线程、实体类、 集合类、正则表达式、 XML和属性文件 图形编程 AWT(Java2D/JavaSound/JMF)、Swing、SWT、JFace 网路编程 Applet、Socket/TCP/UDP、NIO、RMI、CORBA Java语法基础 类、抽象类、接口、最终类、静态类、匿名类、内部类、异常类、编码规范 Java开发环境 JDK、JVM、Eclipse、Linux Java核心编程技术 Java,设计而又非常精巧的语言。学习Java,须从Java开发环境开始,到Java语法,再到Java的核心API。 1.Java开发入门:Java开发环境的安装与使用,包括JDK命令、EclipseIDE、linux下Java程序的开发和部署等。 2.Java语法基础:基于JDK和Eclipse环境,进行Java核心功能开发,掌握Java面向对象的语法构成,包括类、抽象类、接口、最终类、静态类、匿名类、内部类、异常的编写。 3.Java核心API:基于JDK提供的类库,掌握三大核心功能: A。Java核心编程:包括Java编程的两大核心功能——Java输入/输出流和多线程,以及常用的辅助类库——实体类、集合类、正则表达式、XML和属性文件。 B。Java图形编程:包括Sun的GUI库AWT(Java2D、JavaSound、JMF)和Swing,IBM和GUI库SWT和Jface; C.Java网路编程:Applet组件编程,Socket编程,NIO非阻塞Socket编程、RMI和CORBA分布式开发。 4.Java高级特性:掌握JDK1.4、JDK5.0、JDK6.0中的Java高级特性,包括反射、泛型、注释,以及java高级特性——自动装箱和拆箱、枚举类、可变参数、可变返回类型、增强循环、静态导入等。 JavaEE初级软件工程师 JSF框架开发技术 配置文件(页面导航、后台Bean)、JSF组件库(JSF EL语言、HTML标签、事件处理、)、JSF核心库(格式转换、输入验证、国际化) Javaweb核心开发技术 开发环境(Eclipse、Linux) 三大组件(JSP、JavaBean、Servlet) 扩展技术(EL、JSTL、Taglib) 网页开发技术 HTML、XML、CSS、JavaScript、AJAX 数据库设计技术 SQL、MySQL、Oracle、SQLServer、JDBC Web服务器(Tomcat/Jetty/Resin/JBossWeb) JavaWeb核心技术: JavaWeb项目开发的全过程可以分解为: 网页开发+数据库设计——>JavaWeb项目开发,其中,javaWeb由6项基本技术组成:JSP+JavaBean+Servlet+EL+JSTL+Taglib,而JSF正是将这6种技术进行有机结合的技术框架: JavaEE中级软件工程师 四种经典架构SSH1、SSI1、SSH2、SSI2 Struts1表现层框架 入门配置、核心组件、标签库、国际化、数据检验、数据库开发、Sitemesh集成、集成hibernate/iBATIS Struts2表现层框架 入门配置、核心组件、标签库、国际化、数据校验、Sitemesh集成转换器、拦截器、集成Hibernate/iBATIS spring业务层框架 入门配置、IoC容器、MVC、标签库、国际化、数据校验、数据库开发 Hibernate持久层框架 mysql、oracle、SQLServeriBATIS持久层框架 MySQL、Oracle、SQLServer Web服务器(Tomcat/Jetty/Resin/JBossWeb) Java高级软件工程师 javaWeb开源技术与框架 工作流、 规则引擎 搜索引擎、 缓存引擎、 任务调度、 身份认证 报表服务、 系统测试、 集群、 负载平衡、 故障转移 JavaWeb分布式开发技术 JTA(Java事物管理) JAAS(Java验证和授权服务) JNDI(Java命名和目录服务) JavaMail(Java邮件服务) JMS(java信息服务) WebService(web服务) JCA(java连接体系) JMS(java管理体系) 应用服务器(JBossAS/WebLogic/WebSphere) JavaEE系统架构师 面向云架构(COA) COA、SaaS、网格计算、集群计算、分布式计算、云计算 面向资源架构(ROA) ROA、RESI 面向web服务架构(SOA) WebService、SOA、SCA、ESB、OSGI、EAI Java设计模式 创建式模式:抽象工厂/建造者/工厂方法/原型/单例 构造型模式:适配器/桥接/组合/装饰/外观/享元/代理 行为型模式:责任链/命令/解释器/迭代子/中介者/备忘录/观察者/状态/策略/模板方法/访问者 Java与UML建模 对象图、用例图、组件图、部署图、序列图、交互图、活动图、正向工程与逆向工程 CTO首席技术官 发展战略 技术总监 团队提升 团队建设 项目管理 产品管理 下面的更深入的有兴趣可以了解一下,我的目的不是要大家掌握下面的知识,只是希望扩展自己的思维,摘自牛人的技术博客。 /**************************************************牛人必看*****************************************************************/ 系统后台框架: 前端工程师技能: B2C电子商务基础系统架构解析 运营B2C日久,越来越深刻的意识到IT系统对确保规范化业务流转,支撑消费者端的均一服务有着决定性的作用。于是,一直想好好整理下相关的系统架构,怎奈俗务缠身,一直拖到今日,猛然发现下周娃很可能就要出生,拖无可拖,快马加笔,居然整出来了。本文的重点是理清系统的逻辑关系,详细的功能模块请参见结尾附上的系统架构图。 首先,聊下对系统逻辑架构的看法;我个人始终坚持认为,系统的开发与演化,前台严格follow消费者的购买流程,后台则盯牢订单流转,牢牢抓住这两条主线,才能高屋建瓴的看清B2C的逻辑链和数据流,更深刻的规划功能模块,从而更有效支撑实际业务的流转。 前台系统包括:商品展示,内容展示,订单确认,支付系统,用户中心四大模块 一,商品展示 按照Ebay的内部分类,任何将商品以单个或批量的方式展示给消费者的功能均应归入此系统。因此,该系统至少包括: A,站内搜索(搜索提示,搜索规则,搜索成功页,搜索不成功页,相似推荐) B,导航(频道导航,其他导航如销售排行,广告位,推荐位,文字链,Also buy等) C,商品分类(品牌分类,品类分类,属性分类如剪裁形式) D,登陆页(商品列表页,商品详细页,商品活动页) 这里的访问逻辑是:A /B/C分流消费者去往相对个性化的页面,由登陆页体现商家的核心诉求和价值传递,完成call-to-action的第一步。 二,内容展示 内容展示较为简单,对纯购物品牌而言包括: A,公告区 B,帮助中心 C,论坛(如需商城与论坛发生交互,则需自行开发,否则可集成discuz做同步登陆即可) 大家都知道,就不多说了。 三,订单确认 订单确认,就是帮助消费者正确提交订单信息的环节,看似简单,实则非常复杂,需要对很多信息逻辑判断和处理,一般由2个部分组成: A,购物车(购物车浮层,购物车页面,无注册购买) 无注册购买是需要慎用的功能,除非刻意追求用户的短平快下单,如团购/换购,一般不推荐使用,会造成系统异常复杂,开发量也很大。 B,订单提交(返回购物车,收货地址&地址薄,支付方式判断,配送方式,发票,订单标记,实付金额计算等等) 值得一提的是,几乎大多数的促销逻辑运算在这个环节完成,充分考虑各种促销方式之间的互斥与重叠是系统设计的核心,需要充分考虑各种情况,避免出现逻辑漏洞。 四,支付系统 与一般的想象不同,支付系统其实并不简单等于第三方支付工具接入: A,外部支付系统(支付宝将接口,财付通接口,网银直联端口,信用ka分期端口) B,内部支付系统(账户余额,积分,礼品卡,优惠券) 支付系统的逻辑设计不但需要考虑到各种极端情况的发生(如一张订单先用礼品卡,再用积分,最后网银支付),还要预留财务做账所需的相关字段,并充分考虑订单取消之后如何回滚各类内部账户。 五,用户中心 用户中心的实质是用户自助功能的dashboard,一般4个部分组成: A,注册&登陆(快速注册,完整注册,注册有礼,推荐注册,密码找回,主站id登陆,open-id登陆如QQ,新浪微博等) B,订单中心(历史订单状态,中间状态订单修改,物流追踪) C,服务中心(各类自助服务如退款申请,退换货申请,建议与投诉等) D,信息管理(用户基本信息管理和账户信息管理) 用户中心的价值在于:尽可能引导用户自行获取所需的信息并提交所需的服务,在提升服务准确率,及时性的同时降低对人工成本。 后台系统包括:商品&促销,CRM,订单处理,WMS,采购管理,财务管理,报表管理,系统设置,WA系统9大模块 一,商品&促销 商品&促销模块的核心在于确保消费者下单之前,前台内容所见即所得 A,商品管理(品类管理,品牌管理,单品管理) B,促销管理(活动管理和自定义活动模板管理) 在上述模块中,最重要的是2个部分:单品管理中的批量产品生成的自动程序和活动管理中“共享与互斥”管理。前者用于大幅提升上新速度,后者避免促销活动失控。 二, CRM CRM是对B2C核心资源—会员的管理,服务与再营销系统,包括如下部分: A,会员管理(会员信息的增删改查和到其他系统的链接) B,用户关怀(条件触发和人工触发相关EDM & 短信 & OB) C,定向营销(会员分组和营销活动管理) D,客服管理(内容非常多,集成所有需前台与后台交互的功能,详情还是看图吧) E,呼叫中心(IVR,坐席管理,统计报表,参数传递与窗口嵌入) 值得注意的,EDM和短信通道市面上已经有成熟的外包服务商,一般都会外包;呼叫中心和在线客服自行开发成本太高,特别是呼叫中心系统,业务初期也都是外包的。 三,订单处理 订单处理是在订单未正式进入仓储部门处理之前,对订单的前置性处理环节。 A,订单录入(电话订购,网上下单,外部团购订单,无金额订单录入如礼品单) B,订单审核(自动审核和人工审核) C,RMA处理(RMA申请单和RMA处理单) RMA的逻辑也异常复杂,需要在效率和成本之间找平衡,确保在不拖垮仓储部门的正常出入库的前提下对消费者端快速有效close工单;对内部则需要控制成本,货损不能超过预算上限。 四, WMS(WarehouseManagement system仓库管理系统) WMS的流程很长,功能模块也很多,大致分为入库管理,库存管理,出库管理和票据管理4个模块四个模块。 五,采购管理 采购管理的核心是有效跟进采购合同/发票的状态,大货的采购入库/退库,财务结算和在仓库存查询和处理。 A,供应商管理(供应商信息管理,合同发票管理) B,采购单管理(PO单管理,负PO单管理) C,库存管理(库存查询,库存占用单,库存变动log) 六,财务管理 B2C的财务管理,主要是对供应商,渠道和内部费用支出的成本控制。 A,供应商结算 B,渠道结算 C,配送结算 D,内部结算 说实在的,哥对财务这块也不算很了解,大家将就看看,图片上有明细。 七,报表管理 报表是B2C业务的宏观表现,理论上说,每个部门的KPI都应该从中找到。 A,搜索报表(站内搜索量查询) B,销售报表(多个维度销量查询,优惠券使用情况,报表导出) C,财务报表 D,客服报表(客服日报和坐席报表) 前者反映与消费者发生的日常交互(包括正常与异常),后者考核客服的工作绩效 E,仓储物流报表 这几块报表,是业务运作的核心,涉及到公司机密,就不能写的太细了,见谅。 八,系统设置 这块大家都知道是干嘛的,也就不多说了,分成三块。 A,基础设置(和业务有关的一些字段值) B,权限设置(不同账号的操作权限和操作记录) C,其他设置 九, WA系统(Web Analytcis) 网站分析系统,几乎全是外购,很少有能够自建的,即使自建,最多做几个简单的模块。用于实战的,要么是免费的GA(GoogleAnalytics),要么是昂贵的Omniture。 最后,上全系统大图,再感慨一句,B2C系统,真是一个大工程啊。
从程序员到CTO的Java技术 在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了。但如果有清晰的指示图供参考还是非常不错的,这样我们清楚的知道我们大概处于那个阶段和水平。 Java程序员 高级特性 反射、泛型、注释符、自动装箱和拆箱、枚举类、可变 参数、可变返回类型、增强循环、静态导入 核心编程 IO、多线程、实体类、 集合类、正则表达式、 XML和属性文件 图形编程 AWT(Java2D/JavaSound/JMF)、Swing、SWT、JFace 网路编程 Applet、Socket/TCP/UDP、NIO、RMI、CORBA Java语法基础 类、抽象类、接口、最终类、静态类、匿名类、内部类、异常类、编码规范 Java开发环境 JDK、JVM、Eclipse、Linux Java核心编程技术 Java,设计而又非常精巧的语言。学习Java,须从Java开发环境开始,到Java语法,再到Java的核心API。 1.Java开发入门:Java开发环境的安装与使用,包括JDK命令、EclipseIDE、linux下Java程序的开发和部署等。 2.Java语法基础:基于JDK和Eclipse环境,进行Java核心功能开发,掌握Java面向对象的语法构成,包括类、抽象类、接口、最终类、静态类、匿名类、内部类、异常的编写。 3.Java核心API:基于JDK提供的类库,掌握三大核心功能: A。Java核心编程:包括Java编程的两大核心功能——Java输入/输出流和多线程,以及常用的辅助类库——实体类、集合类、正则表达式、XML和属性文件。 B。Java图形编程:包括Sun的GUI库AWT(Java2D、JavaSound、JMF)和Swing,IBM和GUI库SWT和Jface; C.Java网路编程:Applet组件编程,Socket编程,NIO非阻塞Socket编程、RMI和CORBA分布式开发。 4.Java高级特性:掌握JDK1.4、JDK5.0、JDK6.0中的Java高级特性,包括反射、泛型、注释,以及java高级特性——自动装箱和拆箱、枚举类、可变参数、可变返回类型、增强循环、静态导入等。 JavaEE初级软件工程师 JSF框架开发技术 配置文件(页面导航、后台Bean)、JSF组件库(JSF EL语言、HTML标签、事件处理、)、JSF核心库(格式转换、输入验证、国际化) Javaweb核心开发技术 开发环境(Eclipse、Linux) 三大组件(JSP、JavaBean、Servlet) 扩展技术(EL、JSTL、Taglib) 网页开发技术 HTML、XML、CSS、JavaScript、AJAX 数据库设计技术 SQL、MySQL、Oracle、SQLServer、JDBC Web服务器(Tomcat/Jetty/Resin/JBossWeb) JavaWeb核心技术: JavaWeb项目开发的全过程可以分解为: 网页开发+数据库设计——>JavaWeb项目开发,其中,javaWeb由6项基本技术组成:JSP+JavaBean+Servlet+EL+JSTL+Taglib,而JSF正是将这6种技术进行有机结合的技术框架: JavaEE中级软件工程师 四种经典架构SSH1、SSI1、SSH2、SSI2 Struts1表现层框架 入门配置、核心组件、标签库、国际化、数据检验、数据库开发、Sitemesh集成、集成hibernate/iBATIS Struts2表现层框架 入门配置、核心组件、标签库、国际化、数据校验、Sitemesh集成转换器、拦截器、集成Hibernate/iBATIS spring业务层框架 入门配置、IoC容器、MVC、标签库、国际化、数据校验、数据库开发 Hibernate持久层框架 mysql、oracle、SQLServeriBATIS持久层框架 MySQL、Oracle、SQLServer Web服务器(Tomcat/Jetty/Resin/JBossWeb) Java高级软件工程师 javaWeb开源技术与框架 工作流、 规则引擎 搜索引擎、 缓存引擎、 任务调度、 身份认证 报表服务、 系统测试、 集群、 负载平衡、 故障转移 JavaWeb分布式开发技术 JTA(Java事物管理) JAAS(Java验证和授权服务) JNDI(Java命名和目录服务) JavaMail(Java邮件服务) JMS(java信息服务) WebService(web服务) JCA(java连接体系) JMS(java管理体系) 应用服务器(JBossAS/WebLogic/WebSphere) JavaEE系统架构师 面向云架构(COA) COA、SaaS、网格计算、集群计算、分布式计算、云计算 面向资源架构(ROA) ROA、RESI 面向web服务架构(SOA) WebService、SOA、SCA、ESB、OSGI、EAI Java设计模式 创建式模式:抽象工厂/建造者/工厂方法/原型/单例 构造型模式:适配器/桥接/组合/装饰/外观/享元/代理 行为型模式:责任链/命令/解释器/迭代子/中介者/备忘录/观察者/状态/策略/模板方法/访问者 Java与UML建模 对象图、用例图、组件图、部署图、序列图、交互图、活动图、正向工程与逆向工程 CTO首席技术官 发展战略 技术总监 团队提升 团队建设 项目管理 产品管理 下面的更深入的有兴趣可以了解一下,我的目的不是要大家掌握下面的知识,只是希望扩展自己的思维,摘自牛人的技术博客。 /**************************************************牛人必看*****************************************************************/ 系统后台框架: 前端工程师技能: B2C电子商务基础系统架构解析 运营B2C日久,越来越深刻的意识到IT系统对确保规范化业务流转,支撑消费者端的均一服务有着决定性的作用。于是,一直想好好整理下相关的系统架构,怎奈俗务缠身,一直拖到今日,猛然发现下周娃很可能就要出生,拖无可拖,快马加笔,居然整出来了。本文的重点是理清系统的逻辑关系,详细的功能模块请参见结尾附上的系统架构图。 首先,聊下对系统逻辑架构的看法;我个人始终坚持认为,系统的开发与演化,前台严格follow消费者的购买流程,后台则盯牢订单流转,牢牢抓住这两条主线,才能高屋建瓴的看清B2C的逻辑链和数据流,更深刻的规划功能模块,从而更有效支撑实际业务的流转。 前台系统包括:商品展示,内容展示,订单确认,支付系统,用户中心四大模块 一,商品展示 按照Ebay的内部分类,任何将商品以单个或批量的方式展示给消费者的功能均应归入此系统。因此,该系统至少包括: A,站内搜索(搜索提示,搜索规则,搜索成功页,搜索不成功页,相似推荐) B,导航(频道导航,其他导航如销售排行,广告位,推荐位,文字链,Also buy等) C,商品分类(品牌分类,品类分类,属性分类如剪裁形式) D,登陆页(商品列表页,商品详细页,商品活动页) 这里的访问逻辑是:A /B/C分流消费者去往相对个性化的页面,由登陆页体现商家的核心诉求和价值传递,完成call-to-action的第一步。 二,内容展示 内容展示较为简单,对纯购物品牌而言包括: A,公告区 B,帮助中心 C,论坛(如需商城与论坛发生交互,则需自行开发,否则可集成discuz做同步登陆即可) 大家都知道,就不多说了。 三,订单确认 订单确认,就是帮助消费者正确提交订单信息的环节,看似简单,实则非常复杂,需要对很多信息逻辑判断和处理,一般由2个部分组成: A,购物车(购物车浮层,购物车页面,无注册购买) 无注册购买是需要慎用的功能,除非刻意追求用户的短平快下单,如团购/换购,一般不推荐使用,会造成系统异常复杂,开发量也很大。 B,订单提交(返回购物车,收货地址&地址薄,支付方式判断,配送方式,发票,订单标记,实付金额计算等等) 值得一提的是,几乎大多数的促销逻辑运算在这个环节完成,充分考虑各种促销方式之间的互斥与重叠是系统设计的核心,需要充分考虑各种情况,避免出现逻辑漏洞。 四,支付系统 与一般的想象不同,支付系统其实并不简单等于第三方支付工具接入: A,外部支付系统(支付宝将接口,财付通接口,网银直联端口,信用ka分期端口) B,内部支付系统(账户余额,积分,礼品卡,优惠券) 支付系统的逻辑设计不但需要考虑到各种极端情况的发生(如一张订单先用礼品卡,再用积分,最后网银支付),还要预留财务做账所需的相关字段,并充分考虑订单取消之后如何回滚各类内部账户。 五,用户中心 用户中心的实质是用户自助功能的dashboard,一般4个部分组成: A,注册&登陆(快速注册,完整注册,注册有礼,推荐注册,密码找回,主站id登陆,open-id登陆如QQ,新浪微博等) B,订单中心(历史订单状态,中间状态订单修改,物流追踪) C,服务中心(各类自助服务如退款申请,退换货申请,建议与投诉等) D,信息管理(用户基本信息管理和账户信息管理) 用户中心的价值在于:尽可能引导用户自行获取所需的信息并提交所需的服务,在提升服务准确率,及时性的同时降低对人工成本。 后台系统包括:商品&促销,CRM,订单处理,WMS,采购管理,财务管理,报表管理,系统设置,WA系统9大模块 一,商品&促销 商品&促销模块的核心在于确保消费者下单之前,前台内容所见即所得 A,商品管理(品类管理,品牌管理,单品管理) B,促销管理(活动管理和自定义活动模板管理) 在上述模块中,最重要的是2个部分:单品管理中的批量产品生成的自动程序和活动管理中“共享与互斥”管理。前者用于大幅提升上新速度,后者避免促销活动失控。 二, CRM CRM是对B2C核心资源—会员的管理,服务与再营销系统,包括如下部分: A,会员管理(会员信息的增删改查和到其他系统的链接) B,用户关怀(条件触发和人工触发相关EDM & 短信 & OB) C,定向营销(会员分组和营销活动管理) D,客服管理(内容非常多,集成所有需前台与后台交互的功能,详情还是看图吧) E,呼叫中心(IVR,坐席管理,统计报表,参数传递与窗口嵌入) 值得注意的,EDM和短信通道市面上已经有成熟的外包服务商,一般都会外包;呼叫中心和在线客服自行开发成本太高,特别是呼叫中心系统,业务初期也都是外包的。 三,订单处理 订单处理是在订单未正式进入仓储部门处理之前,对订单的前置性处理环节。 A,订单录入(电话订购,网上下单,外部团购订单,无金额订单录入如礼品单) B,订单审核(自动审核和人工审核) C,RMA处理(RMA申请单和RMA处理单) RMA的逻辑也异常复杂,需要在效率和成本之间找平衡,确保在不拖垮仓储部门的正常出入库的前提下对消费者端快速有效close工单;对内部则需要控制成本,货损不能超过预算上限。 四, WMS(WarehouseManagement system仓库管理系统) WMS的流程很长,功能模块也很多,大致分为入库管理,库存管理,出库管理和票据管理4个模块四个模块。 五,采购管理 采购管理的核心是有效跟进采购合同/发票的状态,大货的采购入库/退库,财务结算和在仓库存查询和处理。 A,供应商管理(供应商信息管理,合同发票管理) B,采购单管理(PO单管理,负PO单管理) C,库存管理(库存查询,库存占用单,库存变动log) 六,财务管理 B2C的财务管理,主要是对供应商,渠道和内部费用支出的成本控制。 A,供应商结算 B,渠道结算 C,配送结算 D,内部结算 说实在的,哥对财务这块也不算很了解,大家将就看看,图片上有明细。 七,报表管理 报表是B2C业务的宏观表现,理论上说,每个部门的KPI都应该从中找到。 A,搜索报表(站内搜索量查询) B,销售报表(多个维度销量查询,优惠券使用情况,报表导出) C,财务报表 D,客服报表(客服日报和坐席报表) 前者反映与消费者发生的日常交互(包括正常与异常),后者考核客服的工作绩效 E,仓储物流报表 这几块报表,是业务运作的核心,涉及到公司机密,就不能写的太细了,见谅。 八,系统设置 这块大家都知道是干嘛的,也就不多说了,分成三块。 A,基础设置(和业务有关的一些字段值) B,权限设置(不同账号的操作权限和操作记录) C,其他设置 九, WA系统(Web Analytcis) 网站分析系统,几乎全是外购,很少有能够自建的,即使自建,最多做几个简单的模块。用于实战的,要么是免费的GA(GoogleAnalytics),要么是昂贵的Omniture。 最后,上全系统大图,再感慨一句,B2C系统,真是一个大工程啊。
从程序员到CTO的Java技术 在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了。但如果有清晰的指示图供参考还是非常不错的,这样我们清楚的知道我们大概处于那个阶段和水平。 Java程序员 高级特性 反射、泛型、注释符、自动装箱和拆箱、枚举类、可变 参数、可变返回类型、增强循环、静态导入 核心编程 IO、多线程、实体类、 集合类、正则表达式、 XML和属性文件 图形编程 AWT(Java2D/JavaSound/JMF)、Swing、SWT、JFace 网路编程 Applet、Socket/TCP/UDP、NIO、RMI、CORBA Java语法基础 类、抽象类、接口、最终类、静态类、匿名类、内部类、异常类、编码规范 Java开发环境 JDK、JVM、Eclipse、Linux Java核心编程技术 Java,设计而又非常精巧的语言。学习Java,须从Java开发环境开始,到Java语法,再到Java的核心API。 1.Java开发入门:Java开发环境的安装与使用,包括JDK命令、EclipseIDE、linux下Java程序的开发和部署等。 2.Java语法基础:基于JDK和Eclipse环境,进行Java核心功能开发,掌握Java面向对象的语法构成,包括类、抽象类、接口、最终类、静态类、匿名类、内部类、异常的编写。 3.Java核心API:基于JDK提供的类库,掌握三大核心功能: A。Java核心编程:包括Java编程的两大核心功能——Java输入/输出流和多线程,以及常用的辅助类库——实体类、集合类、正则表达式、XML和属性文件。 B。Java图形编程:包括Sun的GUI库AWT(Java2D、JavaSound、JMF)和Swing,IBM和GUI库SWT和Jface; C.Java网路编程:Applet组件编程,Socket编程,NIO非阻塞Socket编程、RMI和CORBA分布式开发。 4.Java高级特性:掌握JDK1.4、JDK5.0、JDK6.0中的Java高级特性,包括反射、泛型、注释,以及java高级特性——自动装箱和拆箱、枚举类、可变参数、可变返回类型、增强循环、静态导入等。 JavaEE初级软件工程师 JSF框架开发技术 配置文件(页面导航、后台Bean)、JSF组件库(JSF EL语言、HTML标签、事件处理、)、JSF核心库(格式转换、输入验证、国际化) Javaweb核心开发技术 开发环境(Eclipse、Linux) 三大组件(JSP、JavaBean、Servlet) 扩展技术(EL、JSTL、Taglib) 网页开发技术 HTML、XML、CSS、JavaScript、AJAX 数据库设计技术 SQL、MySQL、Oracle、SQLServer、JDBC Web服务器(Tomcat/Jetty/Resin/JBossWeb) JavaWeb核心技术: JavaWeb项目开发的全过程可以分解为: 网页开发+数据库设计——>JavaWeb项目开发,其中,javaWeb由6项基本技术组成:JSP+JavaBean+Servlet+EL+JSTL+Taglib,而JSF正是将这6种技术进行有机结合的技术框架: JavaEE中级软件工程师 四种经典架构SSH1、SSI1、SSH2、SSI2 Struts1表现层框架 入门配置、核心组件、标签库、国际化、数据检验、数据库开发、Sitemesh集成、集成hibernate/iBATIS Struts2表现层框架 入门配置、核心组件、标签库、国际化、数据校验、Sitemesh集成转换器、拦截器、集成Hibernate/iBATIS spring业务层框架 入门配置、IoC容器、MVC、标签库、国际化、数据校验、数据库开发 Hibernate持久层框架 mysql、oracle、SQLServeriBATIS持久层框架 MySQL、Oracle、SQLServer Web服务器(Tomcat/Jetty/Resin/JBossWeb) Java高级软件工程师 javaWeb开源技术与框架 工作流、 规则引擎 搜索引擎、 缓存引擎、 任务调度、 身份认证 报表服务、 系统测试、 集群、 负载平衡、 故障转移 JavaWeb分布式开发技术 JTA(Java事物管理) JAAS(Java验证和授权服务) JNDI(Java命名和目录服务) JavaMail(Java邮件服务) JMS(java信息服务) WebService(web服务) JCA(java连接体系) JMS(java管理体系) 应用服务器(JBossAS/WebLogic/WebSphere) JavaEE系统架构师 面向云架构(COA) COA、SaaS、网格计算、集群计算、分布式计算、云计算 面向资源架构(ROA) ROA、RESI 面向web服务架构(SOA) WebService、SOA、SCA、ESB、OSGI、EAI Java设计模式 创建式模式:抽象工厂/建造者/工厂方法/原型/单例 构造型模式:适配器/桥接/组合/装饰/外观/享元/代理 行为型模式:责任链/命令/解释器/迭代子/中介者/备忘录/观察者/状态/策略/模板方法/访问者 Java与UML建模 对象图、用例图、组件图、部署图、序列图、交互图、活动图、正向工程与逆向工程 CTO首席技术官 发展战略 技术总监 团队提升 团队建设 项目管理 产品管理 下面的更深入的有兴趣可以了解一下,我的目的不是要大家掌握下面的知识,只是希望扩展自己的思维,摘自牛人的技术博客。 /**************************************************牛人必看*****************************************************************/ 系统后台框架: 前端工程师技能: B2C电子商务基础系统架构解析 运营B2C日久,越来越深刻的意识到IT系统对确保规范化业务流转,支撑消费者端的均一服务有着决定性的作用。于是,一直想好好整理下相关的系统架构,怎奈俗务缠身,一直拖到今日,猛然发现下周娃很可能就要出生,拖无可拖,快马加笔,居然整出来了。本文的重点是理清系统的逻辑关系,详细的功能模块请参见结尾附上的系统架构图。 首先,聊下对系统逻辑架构的看法;我个人始终坚持认为,系统的开发与演化,前台严格follow消费者的购买流程,后台则盯牢订单流转,牢牢抓住这两条主线,才能高屋建瓴的看清B2C的逻辑链和数据流,更深刻的规划功能模块,从而更有效支撑实际业务的流转。 前台系统包括:商品展示,内容展示,订单确认,支付系统,用户中心四大模块 一,商品展示 按照Ebay的内部分类,任何将商品以单个或批量的方式展示给消费者的功能均应归入此系统。因此,该系统至少包括: A,站内搜索(搜索提示,搜索规则,搜索成功页,搜索不成功页,相似推荐) B,导航(频道导航,其他导航如销售排行,广告位,推荐位,文字链,Also buy等) C,商品分类(品牌分类,品类分类,属性分类如剪裁形式) D,登陆页(商品列表页,商品详细页,商品活动页) 这里的访问逻辑是:A /B/C分流消费者去往相对个性化的页面,由登陆页体现商家的核心诉求和价值传递,完成call-to-action的第一步。 二,内容展示 内容展示较为简单,对纯购物品牌而言包括: A,公告区 B,帮助中心 C,论坛(如需商城与论坛发生交互,则需自行开发,否则可集成discuz做同步登陆即可) 大家都知道,就不多说了。 三,订单确认 订单确认,就是帮助消费者正确提交订单信息的环节,看似简单,实则非常复杂,需要对很多信息逻辑判断和处理,一般由2个部分组成: A,购物车(购物车浮层,购物车页面,无注册购买) 无注册购买是需要慎用的功能,除非刻意追求用户的短平快下单,如团购/换购,一般不推荐使用,会造成系统异常复杂,开发量也很大。 B,订单提交(返回购物车,收货地址&地址薄,支付方式判断,配送方式,发票,订单标记,实付金额计算等等) 值得一提的是,几乎大多数的促销逻辑运算在这个环节完成,充分考虑各种促销方式之间的互斥与重叠是系统设计的核心,需要充分考虑各种情况,避免出现逻辑漏洞。 四,支付系统 与一般的想象不同,支付系统其实并不简单等于第三方支付工具接入: A,外部支付系统(支付宝将接口,财付通接口,网银直联端口,信用ka分期端口) B,内部支付系统(账户余额,积分,礼品卡,优惠券) 支付系统的逻辑设计不但需要考虑到各种极端情况的发生(如一张订单先用礼品卡,再用积分,最后网银支付),还要预留财务做账所需的相关字段,并充分考虑订单取消之后如何回滚各类内部账户。 五,用户中心 用户中心的实质是用户自助功能的dashboard,一般4个部分组成: A,注册&登陆(快速注册,完整注册,注册有礼,推荐注册,密码找回,主站id登陆,open-id登陆如QQ,新浪微博等) B,订单中心(历史订单状态,中间状态订单修改,物流追踪) C,服务中心(各类自助服务如退款申请,退换货申请,建议与投诉等) D,信息管理(用户基本信息管理和账户信息管理) 用户中心的价值在于:尽可能引导用户自行获取所需的信息并提交所需的服务,在提升服务准确率,及时性的同时降低对人工成本。 后台系统包括:商品&促销,CRM,订单处理,WMS,采购管理,财务管理,报表管理,系统设置,WA系统9大模块 一,商品&促销 商品&促销模块的核心在于确保消费者下单之前,前台内容所见即所得 A,商品管理(品类管理,品牌管理,单品管理) B,促销管理(活动管理和自定义活动模板管理) 在上述模块中,最重要的是2个部分:单品管理中的批量产品生成的自动程序和活动管理中“共享与互斥”管理。前者用于大幅提升上新速度,后者避免促销活动失控。 二, CRM CRM是对B2C核心资源—会员的管理,服务与再营销系统,包括如下部分: A,会员管理(会员信息的增删改查和到其他系统的链接) B,用户关怀(条件触发和人工触发相关EDM & 短信 & OB) C,定向营销(会员分组和营销活动管理) D,客服管理(内容非常多,集成所有需前台与后台交互的功能,详情还是看图吧) E,呼叫中心(IVR,坐席管理,统计报表,参数传递与窗口嵌入) 值得注意的,EDM和短信通道市面上已经有成熟的外包服务商,一般都会外包;呼叫中心和在线客服自行开发成本太高,特别是呼叫中心系统,业务初期也都是外包的。 三,订单处理 订单处理是在订单未正式进入仓储部门处理之前,对订单的前置性处理环节。 A,订单录入(电话订购,网上下单,外部团购订单,无金额订单录入如礼品单) B,订单审核(自动审核和人工审核) C,RMA处理(RMA申请单和RMA处理单) RMA的逻辑也异常复杂,需要在效率和成本之间找平衡,确保在不拖垮仓储部门的正常出入库的前提下对消费者端快速有效close工单;对内部则需要控制成本,货损不能超过预算上限。 四, WMS(WarehouseManagement system仓库管理系统) WMS的流程很长,功能模块也很多,大致分为入库管理,库存管理,出库管理和票据管理4个模块四个模块。 五,采购管理 采购管理的核心是有效跟进采购合同/发票的状态,大货的采购入库/退库,财务结算和在仓库存查询和处理。 A,供应商管理(供应商信息管理,合同发票管理) B,采购单管理(PO单管理,负PO单管理) C,库存管理(库存查询,库存占用单,库存变动log) 六,财务管理 B2C的财务管理,主要是对供应商,渠道和内部费用支出的成本控制。 A,供应商结算 B,渠道结算 C,配送结算 D,内部结算 说实在的,哥对财务这块也不算很了解,大家将就看看,图片上有明细。 七,报表管理 报表是B2C业务的宏观表现,理论上说,每个部门的KPI都应该从中找到。 A,搜索报表(站内搜索量查询) B,销售报表(多个维度销量查询,优惠券使用情况,报表导出) C,财务报表 D,客服报表(客服日报和坐席报表) 前者反映与消费者发生的日常交互(包括正常与异常),后者考核客服的工作绩效 E,仓储物流报表 这几块报表,是业务运作的核心,涉及到公司机密,就不能写的太细了,见谅。 八,系统设置 这块大家都知道是干嘛的,也就不多说了,分成三块。 A,基础设置(和业务有关的一些字段值) B,权限设置(不同账号的操作权限和操作记录) C,其他设置 九, WA系统(Web Analytcis) 网站分析系统,几乎全是外购,很少有能够自建的,即使自建,最多做几个简单的模块。用于实战的,要么是免费的GA(GoogleAnalytics),要么是昂贵的Omniture。 最后,上全系统大图,再感慨一句,B2C系统,真是一个大工程啊。
JAVA的面向对象编程--------课堂笔记11.29 继承: 父类(SuperClass)和子类(SonClass)。 父类的非私有化属性和方法可以默认继承到子类。 Class Sonextends Father{ } 而如果父类中的私有方法被子类调用的话,则编译报错。 父类的构造方法子类不可以继承,更不存在覆盖的问题。(非构造方法可以) 如果子类访问父类的构造方法,则在编译的时候提示访问不到该方法。 JAVA中不允许多继承,一个类有且只有一个父类(单继承)。 JAVA的数据结构为树型结构,而非网状。(JAVA通过接口和内部类实现多继承) 方法的覆盖(overriding) 方法的重载并不一定是在一个类中:子类可以从父类继承一个方法,也可以定义一个同名异参的方法,也称为overloading。 当子类从父类继承一个无参方法,而又定义了一个同样的无参方法,则子类新写的方法覆盖父类的方法,称为覆盖。(注意返回值类型也必须相同,否则编译出错。) 如果方法不同,则成重载。 对于方法的修饰词,子类方法要比父类的方法范围更加的宽泛。 父类为public,那么子类为private则出现错误。 之所以构造方法先运行父类再运行子类是因为构造方法是无法覆盖的。 以下范围依次由严到宽: private :本类访问; default :表示默认,不仅本类访问,而且是同包可见。 Protected:同包可见+不同包的子类可见 Public :表示所有的地方均可见。 当构造一个对象的时候,系统先构造父类对象,再构造子类对象。 构造一个对象的顺序:(注意:构造父类对象的时候也是这几步) ① 递归地构造父类对象; ② 顺序地调用本类成员属性赋初值语句; ③ 本类的构造方法。 Super()表示调用父类的构造方法。 Super()也和this一样必须放在第一行。 This()用于调用本类的构造方法。 如果没有定义构造方法,那么就会调用父类的无参构造方法,即super()。 要养成良好的编程习惯:就是要加上默认的父类无参的构造方法。 思考:可是如果我们没有定义无参的构造方法,而在程序中构造了有参的构造方法,那么如果方法中没有参数,那么系统还会调用有参的构造方法么?应该不会。 多态:多态指的是编译时类型变化,而运行时类型不变。 多态分两种: ① 编译时多态:编译时动态重载; ② 运行时多态:指一个对象可以具有多个类型。 对象是客观的,人对对象的认识是主观的。 例: Animal a=new Dog();查看格式名称; Dog d=(Dog)a。声明父类来引用子类。 (思考上面的格式) 运行时多态的三原则:(应用时为覆盖) 1、 对象不变;(改变的是主观认识) 2、 对于对象的调用只能限于编译时类型的方法,如调用运行时类型方法报错。 在上面的例子中:Animal a=new Dog();对象a的编译时类型为Animal,运行时类型为dog。 注意:编译时类型一定要为运行时类型的父类(或者同类型)。 对于语句:Dog d=(Dog)a。将d强制声明为a类型,此时d为Dog(),此时d就可以调用运行时类型。注意:a和d指向同一对象。 3、 在程序的运行时,动态类型判定。运行时调用运行时类型,即它调用覆盖后的方法。 关系运算符:instanceof a instanceof Animal;(这个式子的结果是一个布尔表达式) a为对象变量,Animal是类名。 上面语句是判定a是否可以贴Animal标签。如果可以贴则返回true,否则返回false。 在上面的题目中: a instanceof Animal返回 True, a instanceof Dog也返回 True, instanceof用于判定是否将前面的对象变量赋值后边的类名。 Instanceof一般用于在强制类型转换之前判定变量是否可以强制转换。 如果Animal a=new Animal(); Dog d=Dog()a; 此时编译无误,但运行则会报错。 Animal a=newDog()相当于下面语句的功能: Animala=getAnimal(); Public staticAnimal.getAnimal; Return newDog(); 封装、继承、多态为面向对象的三大基石(特性)。 运行时的动态类型判定针对的是方法。运行程序访问的属性仍为编译时属性。 Overloading针对的是编译时类型,不存在运行时的多态。 习题:建立一个shape类,有circle和rect子类。 Shape类有zhouchang()和area()两种方法。 (正方形)squ为rect子类,rect有cha()用于比较长宽的差。 覆盖时考虑子类的private及父类的public(考虑多态),之所以这样是避免调用A时出现实际调用B的情况。而出现错误。 11.29下午讲的是教程上的Module6 Module6-7包括:面向对象高级、内部类、集合、反射(暂时不讲)、例外。 面向对象高级、集合和例外都是面向对象的核心内容。 面向对象高级: 修饰符: static:①可修饰变量(属性);②可修饰方法;③可修饰代码块。 Static int data语句说明data为类变量,为一个类的共享变量,属于整个类。 Int data为实例变量。 例: static intdata; m1.data=0; m1.data++的结果为1,此时m2.data的结果也为1。 Static定义的是一块为整个类共有的一块存储区域,其发生变化时访问到的数据都时经过变化的。 其变量可以通过类名去访问:类名.变量名。与通过访问对象的编译时类型访问类变量为等价的。 Publicstatic voidprintData(){} 表明此类方法为类方法(静态方法) 静态方法不需要有对象,可以使用类名调用。 静态方法中不允许访问类的非静态成员,包括成员的变量和方法,因为此时是通过类调用的,没有对象的概念。This.data是不可用的。 一般情况下,主方法是静态方法,所以可调用静态方法,主方法为静态方法是因为它是整个软件系统的入口,而进入入口时系统中没有任何对象,只能使用类调用。 覆盖不适用于静态方法。 静态方法不可被覆盖。(允许在子类中定义同名静态方法,但是没有多态,严格的讲,方法间没有多态就不能称为覆盖) 当static修饰代码块时(注:此代码块要在此类的任何一个方法之外),那么这个代码块在代码被装载进虚拟机生成对象的时候可被装载一次,以后再也不执行了。 一般静态代码块被用来初始化静态成员。 Static通常用于Singleton模式开发: Singleton是一种设计模式,高于语法,可以保证一个类在整个系统中仅有一个对象
探讨深度学习的未来发展步伐 机器学习是一门多领域交叉学科,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径。 如果论及哪一个机器学习的领域最为热门,非人工智能莫属,这就是深度学习。深度学习框架又名深度神经网络,一个复杂的模式识别系统,可以实现从自动语言翻译到图像识别的功能。(231158925)加群有学习资料 深度学习需要收集大量的数据,并且拥有处理这些数据的能力,做到这些并非易事,但深度学习技术正在蓬勃发展的道路上,并且已经突破了很多障碍。深度学习对于分析非结构化数据具有非常大的优势。 各大软件巨头们也在酝酿一场深度学习技术的争霸战,比如谷歌的TensorFlow项目与百度的paddle。多个软件框架之间的竞争蓄势待发。软件和硬件间的战争开始了。有预言称,专门的硬件设计模型和服务会是深度学习的下一个大的进步,或许有更好、更智能、更高效的算法,无需硬件的辅助就可以把功能服务推向更多人。问题也由此产生,我们中的大多数人都能逐渐理解和接受深度学习技术吗?还是我们一直需要计算机博士们来把握这项技术工作? 微软比谷歌更紧张 一项重要技术展示给世界的好办法,就是引起技术巨头公司们的兴趣。像过去的NoSQL、Hadoop和Spark。在深度学习框架领域,谷歌的TensorFlow已经发展得十分可观,而谷歌云和谷歌专有硬件的研发也紧随其后。 作为竞争对手,微软反击谷歌的杀手锏是认知工具包,也叫CNTK。CNTK2.0版在多个层面挑战TensorFlow。CNTK现在提供JavaAPI,可接受Spark处理框架,同时支持Keras神经网络图书馆代码,这实际上就是TensorFlow的前端。这样一来,Keras的用户就可以避开谷歌的解决方案而转向微软。 对于谷歌TensorFlow,微软最直接、最有意义的应对方法是让CNTK更快速和准确,并且使PythonAPI提供高级别和低级别的功能。这是微软想出来的最佳应对策略。 当然,所谓的快速和准确并不是吹牛,如果微软的系统比TensorFlow更快,那便意味着人们有更多的选择而不只是去砸硬件设备。比如, Tensorflow通过谷歌的定制TPU处理器进行硬件加速,那就意味着第三方项目,TensorFlow和CNTK的接口,就像Spark一样,都能得到加速。承蒙雅虎的牵线,TensorFlow和Spark已经协同工作,但是如果CNTK和Spark提供更少的工作和更高的报酬,CNTK就成为了Spark所在领域中最为诱人的选择。 硬件:Graphcore和波计算 谷歌TPU的一个缺点是,他们只在谷歌云中有效。对于那些已经投资了GCP的人来说,这可能不是个问题,但是对于大多数人,这是一个潜在的"阻断剂"。为深入学习专用硅,如NVIDIA的GPU需要的附加条件较少。 几家公司最近推出了专门的硅优于GPU深度学习的应用。启动Graphcore深度学习处理器,专门的硅片设计过程中采用神经网络的图形数据。该公司称面临的挑战是创建硬件优化,以运行循环或相互连接的网络和其他网络。 一种Graphcore加速的方法是保持网络模型尽可能接近硅,避免对外部存储器的往返访问。尽可能的避免数据运动是加快机器学习的一种常用方法,但Graphcore以这种方式到达另一个层次。 波计算是深度学习专用硬件的另一种启用方式。像Graphcore一样,公司认为GPU的发展和它自身固有的局限性有很大关系,波计算的计划是建立"数据流的设备,"机架式系统使用定制芯片,可以提供2.9petaops计算("petaops"是定点运算,不是"千万亿次的"浮点运算)。这样的运算速度超出了谷歌TPU提供的92teraops的订单。 在需要独立基准,也不清楚每Petaop的价格是否有竞争力的情况下,波计算能保证价格的稳定,也让它的潜在用户可以放心。谷歌TensorFlow的支持是第一个产品框架支持,CNTK、亚马逊的MXNeT和其他公司紧随其后。 brodmann17:小模型,高速度 鉴于Graphcore和波计算的硬件要优于TPU,其他第三方的目的是展示框架和更好的运算法则,可以带来更有力的机械学习。有些用于定位缺乏访问处理区域,例如智能手机。 谷歌已经针对TensorFlow在移动设备上的应用作出升级,一个名为Brodmann17的工具试图在智能手机级硬盘上占用5%的资源(包括计算、存储和数据)。 该公司的做法是由首席执行官和创始人AdiPinhas提出的,用现有的标准神经网络模块创建一个更小的模型。Pinhas说,相比其他流行的深度学习架构,小的模型数量少于训练数据的10%。但在相同的时间里需要一些培训。最终的目的是对速度的精确权衡,更快的预测时间,功耗更低,占用的内存少。 现阶段别指望看到什么开放源代码的产品出现,brodmann17的商业模式是提供云计算的API和本地计算的SDK。Pinhas说,"我们希望扩大我们未来的产品,所以商业化可能只是第一步。 擦出新火花今年早些时候,InfoWorld撰稿人JamesKobielus预言深度学习框架之间的战火渐起。雅虎已经把TensorFlow引向Spark,但是Spark的主要供应商Databricks现在向Spark提供自己的开源软件包来整合深度学习框架。 正如该项目的名称--深度学习管道,探讨深度学习整合并且以Spark自己的角度来看待ML管道技术。Spark工作流可以像TensorFlow和Keras一样被称为图书馆。这些框架模型可以像Spark在其他方面一样,进行规模化训练。并且通过Spark自己的方式来处理数据和深度学习模型。许多数据管理员已经熟悉了Spark并且开始使用它。 全民深度学习? Databricks曾经在自己的新闻稿里提到"民主化的人工智能和数据科学"。这样的论调意味着什么呢?微软认为他们的CNTK2.0可以成为一项有力的举措,使AI技术无处不在的面向所有人。深度学习固有的复杂性并不是唯一要克服的障碍。深度学习的整个工作流程仍然是一个点对点的工作流程。这里有需要填补的空白,所有平台、框架和云背后的商业机构都在竞相填补端到端的解决方案。关于深度学习技术,下一步的关键将不仅仅是找到一个真正的深层学习框架。而是找到一个统一的工作流程。这样一来,不管是谁在开发运行项目,其深度学习框架都可以有据可循的进行开发和研究。
探讨深度学习的未来发展步伐 机器学习是一门多领域交叉学科,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径。 如果论及哪一个机器学习的领域最为热门,非人工智能莫属,这就是深度学习。深度学习框架又名深度神经网络,一个复杂的模式识别系统,可以实现从自动语言翻译到图像识别的功能。(231158925)有更多资料 深度学习需要收集大量的数据,并且拥有处理这些数据的能力,做到这些并非易事,但深度学习技术正在蓬勃发展的道路上,并且已经突破了很多障碍。深度学习对于分析非结构化数据具有非常大的优势。 各大软件巨头们也在酝酿一场深度学习技术的争霸战,比如谷歌的TensorFlow项目与百度的paddle。多个软件框架之间的竞争蓄势待发。软件和硬件间的战争开始了。有预言称,专门的硬件设计模型和服务会是深度学习的下一个大的进步,或许有更好、更智能、更高效的算法,无需硬件的辅助就可以把功能服务推向更多人。问题也由此产生,我们中的大多数人都能逐渐理解和接受深度学习技术吗?还是我们一直需要计算机博士们来把握这项技术工作? 微软比谷歌更紧张 一项重要技术展示给世界的好办法,就是引起技术巨头公司们的兴趣。像过去的NoSQL、Hadoop和Spark。在深度学习框架领域,谷歌的TensorFlow已经发展得十分可观,而谷歌云和谷歌专有硬件的研发也紧随其后。 作为竞争对手,微软反击谷歌的杀手锏是认知工具包,也叫CNTK。CNTK2.0版在多个层面挑战TensorFlow。CNTK现在提供JavaAPI,可接受Spark处理框架,同时支持Keras神经网络图书馆代码,这实际上就是TensorFlow的前端。这样一来,Keras的用户就可以避开谷歌的解决方案而转向微软。 对于谷歌TensorFlow,微软最直接、最有意义的应对方法是让CNTK更快速和准确,并且使PythonAPI提供高级别和低级别的功能。这是微软想出来的最佳应对策略。 当然,所谓的快速和准确并不是吹牛,如果微软的系统比TensorFlow更快,那便意味着人们有更多的选择而不只是去砸硬件设备。比如, Tensorflow通过谷歌的定制TPU处理器进行硬件加速,那就意味着第三方项目,TensorFlow和CNTK的接口,就像Spark一样,都能得到加速。承蒙雅虎的牵线,TensorFlow和Spark已经协同工作,但是如果CNTK和Spark提供更少的工作和更高的报酬,CNTK就成为了Spark所在领域中最为诱人的选择。 硬件:Graphcore和波计算 谷歌TPU的一个缺点是,他们只在谷歌云中有效。对于那些已经投资了GCP的人来说,这可能不是个问题,但是对于大多数人,这是一个潜在的"阻断剂"。为深入学习专用硅,如NVIDIA的GPU需要的附加条件较少。 几家公司最近推出了专门的硅优于GPU深度学习的应用。启动Graphcore深度学习处理器,专门的硅片设计过程中采用神经网络的图形数据。该公司称面临的挑战是创建硬件优化,以运行循环或相互连接的网络和其他网络。 一种Graphcore加速的方法是保持网络模型尽可能接近硅,避免对外部存储器的往返访问。尽可能的避免数据运动是加快机器学习的一种常用方法,但Graphcore以这种方式到达另一个层次。 波计算是深度学习专用硬件的另一种启用方式。像Graphcore一样,公司认为GPU的发展和它自身固有的局限性有很大关系,波计算的计划是建立"数据流的设备,"机架式系统使用定制芯片,可以提供2.9petaops计算("petaops"是定点运算,不是"千万亿次的"浮点运算)。这样的运算速度超出了谷歌TPU提供的92teraops的订单。 在需要独立基准,也不清楚每Petaop的价格是否有竞争力的情况下,波计算能保证价格的稳定,也让它的潜在用户可以放心。谷歌TensorFlow的支持是第一个产品框架支持,CNTK、亚马逊的MXNeT和其他公司紧随其后。 brodmann17:小模型,高速度 鉴于Graphcore和波计算的硬件要优于TPU,其他第三方的目的是展示框架和更好的运算法则,可以带来更有力的机械学习。有些用于定位缺乏访问处理区域,例如智能手机。 谷歌已经针对TensorFlow在移动设备上的应用作出升级,一个名为Brodmann17的工具试图在智能手机级硬盘上占用5%的资源(包括计算、存储和数据)。 该公司的做法是由首席执行官和创始人AdiPinhas提出的,用现有的标准神经网络模块创建一个更小的模型。Pinhas说,相比其他流行的深度学习架构,小的模型数量少于训练数据的10%。但在相同的时间里需要一些培训。最终的目的是对速度的精确权衡,更快的预测时间,功耗更低,占用的内存少。 现阶段别指望看到什么开放源代码的产品出现,brodmann17的商业模式是提供云计算的API和本地计算的SDK。Pinhas说,"我们希望扩大我们未来的产品,所以商业化可能只是第一步。 擦出新火花今年早些时候,InfoWorld撰稿人JamesKobielus预言深度学习框架之间的战火渐起。雅虎已经把TensorFlow引向Spark,但是Spark的主要供应商Databricks现在向Spark提供自己的开源软件包来整合深度学习框架。 正如该项目的名称--深度学习管道,探讨深度学习整合并且以Spark自己的角度来看待ML管道技术。Spark工作流可以像TensorFlow和Keras一样被称为图书馆。这些框架模型可以像Spark在其他方面一样,进行规模化训练。并且通过Spark自己的方式来处理数据和深度学习模型。许多数据管理员已经熟悉了Spark并且开始使用它。 全民深度学习? Databricks曾经在自己的新闻稿里提到"民主化的人工智能和数据科学"。这样的论调意味着什么呢?微软认为他们的CNTK2.0可以成为一项有力的举措,使AI技术无处不在的面向所有人。深度学习固有的复杂性并不是唯一要克服的障碍。深度学习的整个工作流程仍然是一个点对点的工作流程。这里有需要填补的空白,所有平台、框架和云背后的商业机构都在竞相填补端到端的解决方案。关于深度学习技术,下一步的关键将不仅仅是找到一个真正的深层学习框架。而是找到一个统一的工作流程。这样一来,不管是谁在开发运行项目,其深度学习框架都可以有据可循的进行开发和研究。
高级程序员,你需要养成这7个习惯 初入编程时的我,作为新手,一直很迷茫,从未有方向。 总觉得高级程序员,像天空中的星星高高在上。不知道自己通过怎样的姿势,才可以到达。 直到有一天我阅读了《程序员修炼之道:从小工到专家》,里边的这几条至今受用,以下是我的分享,供也在迷茫期的你参考。如果受用,请把他们记在心里,贴在桌子上。 1.要有负责心 在我们的每日工作中,有一半以上时间是在解决各种Bug。高级程序员在面对这些Bug时会从多个维度思考,Bug出现的时间、系统环境、硬件版本以及软件版本等等。接着修复问题,严格自测,上线后观察,一直会跟进到底,把影响降低到最小。 他们会主动承担责任,为结果负责。面对各种问题时,不是第一时间为自己找借口,不是互相推脱,互相指责。而是,想尽一切办法解决问题,即使解决不了,也会给出最优选择。 责任心在程序员的职业生涯中,具有最重要的指导意义,也是成为高级程序员必须具备的素质。 2.掌握代码调试技巧 众所周知,在移动互联网时代,基于市场和需求的变化,项目周期的变化也会很快。有时一个月的工作计划,会缩短到2个星期。面对巨大的项目压力,程序员的代码质量会有所下降。 这时调试技巧就尤为重要。一行代码的输入输出要清楚,一个函数的输入输出要明确而具体。高级程序员会在函数的开始和结束输出Log,把所有的参数和返回值打印到日志系统,便于追踪。在解决问题的过程中,使用开发工具一行一行进行调试,实时观看参数的变化。 高级程序员清楚的知道他写的每一行代码在项目中的作用和意义。 3.不要重复造“轮子” 我们对代码的记忆最多只有2天,如果代码没有注释说明,也许第二天一早就会忘记它的具体意义。30天之前写的代码相信没几个人会记得。 重复是怎样发生的呢? -1.程序员们没有意识到他们在重复。 -2.程序员们偷懒,他们重复,因为那样似乎更容易。 -3.同一个团队的几个人重复同样的信息。 新需求持续进行迭代,需求的变化导致代码需要重新修改。这时的程序员也未必是当初那个程序员,导致隐藏的问题产生,产品到用户手上随时可能会爆发问题。 高级程序员会尽力避免开发重复的代码,组装成公共组件库是最好的选择。 4.尽量使你的程序解耦 全球首位计算机博士David Wheeler曾经说过这样一句话,“计算机科学领域的任何问题都可以通过增加一个中间层来解决”。这句话诠释了解耦的重要性。网络七层协议的设计,软件开发的设计中,数据层、服务层和应用层,无不参考这位伟大计算机博士的思想。 生活中随处可见这样的例子。共享单车的出现,就是对我们出行的解耦合。你要做的就是在你需要的时候去使用,不需要了解更多的细节,出现问题了也不需要你去维修,只管用就好。 高级程序员开发的代码,既屏蔽细节,又提高了灵活性。 5.适当的进行重构 重构是改善现有代码的设计。在给外部提供接口不变的前提下,随着时间的推移,在内部重写、重做和重新架构代码。 什么时间做最好?做的太早,看不出有做的必要性。做的晚,耗费大量的时间周期,会影响当前的项目。 初期的系统架构设计以简单、易用为主。在创业公司3、5个人一个小队,开始了一个项目。在人力资源匮乏的条件下,首要任务是先把系统搭建起来,短期实现基础版。后期随着需求的增加,系统变得庞大。早期的架构明显有些弊端,不能跟随项目进行发展。这时候重构就势在必行了。 高级程序员清楚在什么时间点进行重构。在不影响外部系统的情况,重新开发,提供更稳定的服务。 6.>积累自己的代码库 如果你做了多年的软件开发,没有积累自己的代码库,没有做好笔记。面对新的项目,所有代码重写一遍。无疑了浪费了很多时间。网络上也可以下载到相关代码,但随手的一个小功能,如果在自己的代码仓库里积累好。也省去了搜索的时间。 高级程序员会积累自己的代码仓库 七.实践、实践、再实践 有很多原则和道理我们听过无数遍,但是从来没有去实践。如果不经过几十万行代码的锤炼。很难达到一个高度。外部环境的支撑很重要。但是,如果没有这样的机遇,就需要我们创造条件去寻找。更多精彩Java资料加群奥!!
JAVA的面向对象编程--------课堂笔记 这是静态内部类和成员内部类的区别。静态内部类的对象可以直接生成: Outer.Innerin=new Outer.Inner(); 而不需要通过生成外部类对象来生成。这样实际上使静态内部类成为了一个顶级类。 静态内部类不可用private来进行定义。例子: 对于两个类,拥有相同的方法: People { run(); } Machine{ run(); }面向对象主要针对面向过程。 面向过程的基本单元是函数。 什么是对象:EVERYTHING IS OBJECT(万物皆对象) 所有的事物都有两个方面: 有什么(属性):用来描述对象。 能够做什么(方法):告诉外界对象有那些功能。 后者以前者为基础。 大的对象的属性也可以是一个对象。 为什么要使用面向对象: 首先,面向对象符合人类看待事物的一般规律。 对象的方法的实现细节是屏蔽的,只有对象方法的实现者了解细节。 方法的定义非常重要。方法有参数,也可能有返回值。 注意区分:对象(本身)、对象的实现者、对象的调用者。 分析对象主要从方法开始。 我们通过类来看待对象,类是对象的抽象。 其次,采用面向对象方法可以使系统各部分各司其职、各尽所能。 对象之间的耦合性一定要低(比如不同硬盘和不同主板之间的关系)。这样才能使每个对象本身做成最好的。 对于对象的要求:高内聚、低耦合,这样容易拼装成为一个系统。 实现高内聚就是要最大限度低提高复用性(复用性好是因为高内聚)。 可复用性是OOP的基础。 比较面向过程的思想和面向对象的思想: 面向过程的思想:由过程、步骤、函数组成,以过程为核心; 面向对象的思想:以对象为中心,先开发类,得到对象,通过对象之间相互通信实现功能。 面向过程是先有算法,后有数据结构。 面向对象是先有数据结构,然后再有算法。 在用面向对象思想开发的过程中,可以复用对象就进行复用,如无法进行复用则开发新的对象。 开发过程是用对个简单的对象的多个简单的方法,来实现复杂的功能。 从语法上来看,一个类是一个新的数据类型。 在面向对象编程中,除了简单数据类型,就是对象类型。 定义类的格式: class Student{ 代码 } 注意类名中单词的首字母大写。 实例变量:定义在类中但在任何方法之外。(New出来的均有初值) 局部变量:定义在方法之中的变量。 局部变量要先赋值,再进行运算,而实例变量均已经赋初值。这是局部变量和实例变量的一大区别。 实例变量的对象赋值为null。 局部变量不允许范围内定义两个同名变量。实例变量的作用域在本类中完全有效,当被其他的类调用的时候也可能有效。 实例变量和局部变量允许命名冲突。 书写方法的格式: 修饰符 返回值 方法名 调用过程中 方法体 可能出现的例外 public int/void addNumber(参数) throwExcepion {} 例: public int addNumber(int a,int b){ } 注:方法名中的参数int a,int b为局部变量 类方法中的一类特殊方法:构造方法。 构造方法是当用类生成对象时,系统在生成对象的过程中利用的方法。 注意:构造方法在生成对象的时候会被调用,但并不是构造方法生成了对象。 构造方法没有返回值。格式为:public 方法名。 构造方法的方法名与类名相同。 构造方法是在对象生成的过程中自动调用,不可能利用指令去调用。 在一个对象的生成周期中构造方法只用一次,一旦这个对象生成,那么这个构造方法失效。 用类来生成对象的语句: Student s=new Student()。 第一个Student表示这是用Student类进行定义。“Student()”表示调用一个无参数的构造方法。 如果()中有参数,则系统构造对象的过程中调用有参的方法。 此时S称为一个对象变量。 Student s的存储区域存放的是地址:一个对象在硬盘上占有一个连续地址,首地址赋予s空间。 S称为对象Student的引用。 注意:在对象变量中存放的是引用(地址);在简单变量中存放的是数值。 可以构造多个构造方法,但多个构造方法的参数表一定不同,参数顺序不同即属于不同的构造方法: publicstudent(string name,int a){ } public student(inta,string name){ } 为两个不同的构造方法。 如果我们未给系统提供一个构造方法,那么系统会自动提供一个为空的构造方法。 练习:写一个类,定义一个对象,定义两个构造方法:一个有参,一个无参。 (编写一个程序验证对象的传递的值为地址) 注意下面这种形式: static voidchangename(student stu){stu.setName “LUCY”} 注意生成新的对象与旧对象指向无关,生成新对象生命消亡与旧对象无关。 面向对象方法的重载(overloading)和覆盖(overriding)。 在有些JAVA书籍中将overriding称为重载,overloading称为过载。 Overloading在一个类中可以定义多个同名方法,各个方法的参数表一定不同。但修饰词可能相同,返回值也可能相同。 在程序的编译过程中根据变量类型来找相应的方法。因此也有人认为 overloading是编译时的多态,以后我们还会学到运行时多态。 为什么会存在overloading技术呢?作为应对方法的细节。 利用类型的差异来影响对方法的调用。 吃()可以分为吃肉,吃菜,吃药,在一个类中可以定义多个吃方法。 构造方法也可以实现overloading。例: public void teach(){}; public void teach(int a){}; public void teach(String a){}为三种不同的方法。 Overloading方法是从低向高转。 Byte—short—float—int—long—double。 在构造方法中,this表示本类的其他构造方法: student(){}; student(stringn){ this();//表示调用student() } 如果调用student(int a)则为this(int a)。 特别注意:用this调用其他构造方法时,this必须为第一条语句,然后才是其他语句。 This表示当前对象。 Public void printNum(){ Int number=40; System.out.println(this.number); } 此时打印的是实例变量,而非局部变量,即定义在类中而非方法中的变量。 This.number表示实例变量。 谁调用this.number那么谁即为当前(this)对象的number方法。 封装:使对象的属性尽可能私有,对象的方法尽可能的公开。用private表示此成员属性为该类的私有属性。 Public表示该属性(方法)公开; Private表示该属性(方法)为只有本类内部可以访问(类内部可见)。 (想用private还要用set和get方法供其他方法调用,这样可以保证对属性的访问方式统一,并且便于维护访问权限以及属性数据合法性) 如果没有特殊情况,属性一定私有,方法该公开的公开。 如果不指明谁调用方法,则默认为this。 区分实例变量和局部变量时一定要写this。
Java的三大特性归纳总结 在Java中,面向对象编程有三大特性:封装、继承、多态。 先来说说封装。 封装,顾名思义,就是通过抽象数据类型(即ADT,一种为了将数据类型和可能在该数据类型上进行操作而定义的)将数据以及基于数据的操作封装在一起,使之成为独立的“实体”。 首先先来看一个Person类: 1 public class Person implements Comparable<Person> { 2 private String firstname; 3 private String lastname; 4 5 public String getFirstname() { 6 return firstname; 7 } 8 9 public void setFirstname(String firstname) {10 this.firstname = firstname;11 }12 13 public String getLastname() {14 return lastname;15 }16 17 public void setLastname(String lastname) {18 this.lastname = lastname;19 }20 21 @Override22 public int hashCode() {23 int hash = 7;24 hash = 83 * hash + Objects.hashCode(this.firstname);25 hash = 83 * hash + Objects.hashCode(this.lastname);26 return hash;27 }28 29 @Override30 public boolean equals(Object obj) {31 //检查参数是否是这个对象的引用32 if (this == obj) {33 return true;34 }35 //检查参数是否是正确的类型36 if (!(obj instanceof chapter5_reflect.Person)) {37 return false;38 }39 //将参数转换成正确的类型40 Person person = (Person) obj;41 //对实体域进行匹配42 return Objects.equals(this.firstname, person.firstname)43 && Objects.equals(this.lastname, person.lastname);44 }45 46 @Override47 public int compareTo(Person o) {48 if (this == o) {49 return 0;50 }51 if (null == o) {52 return 1;53 }54 //先判断姓氏是否相同55 int comparison = this.firstname.compareTo(o.firstname);56 if (comparison != 0) {57 return comparison;58 }59 //姓氏相同则比较名60 comparison = this.lastname.compareTo(o.lastname);61 return comparison;62 }63 } 对于封装的思想,我们需要尽可能的隐藏内部细节,只保留一些对外操作。 例如在Person类中,我简单的定义了两个成员变量firstname和lastname,在setter方法里我们可以设置姓和名的一些格式,如首字母大写,其余小写来进行“格式化”,对外开放getter来获取变量的值。 现来总结一下封装的优点: 1.能够更好的把控成员变量,甚至是管理类的内部结构; 2.良好的封装能够减少耦合,使得代码更加健壮; 3.外部程序通过对外接口即可进行访问,无需关注实现细节。 再谈继承。 继承描述的是is-a的关系,它是复用代码的一种方式,思想就在于定义和实现了一个类的时候,可以在一个已存在的类上进行扩展,把已存在的类的内容作为自己的内容,同时可以加入新的内容或者修改原来的方法来适应不同的需求。 下面来看两个例子: 1 public class Person { 2 3 private String name; 4 private String sex; 5 private int age; 6 7 Person(String name, String sex, int age) { 8 this.name = name; 9 this.sex = sex;10 this.age = age;11 }12 13 //省略setter和getter方法...14 37 } 1 public class Yang extends Person { 2 3 Yang(String name, String sex, int age) { 4 super(name, sex, age); 5 } 6 7 public String getName() { 8 return super.getName() + " is " + "genius"; 9 }10 11 } 1 public static void main(String... argc) {2 // Yang yang = new Yang("yang", "male", 23);3 Person person = new Yang("yang", "male", 23);4 out.print(person.getName());5 } 输出: yang is genius 注意,如果父类没有默认的构造器,子类构造函数中需要指定父类的构造器,否则编译将会失败! 从上面的代码中不得不引出关于继承的三大重要的东西,即构造器,protected关键字以及向上转型。 我们知道,构造器是不能被继承的,只许被调用!需要注意的是,子类是依赖于父类的(这也说明了一个弊端,即继承是一种强耦合关系),子类拥有父类的非private属性和方法(弊端二:破坏了封装),所以父类应先于子类被创建。 所以当父类没有默认构造器时,子类需要指定一个父类的构造器,并且写于子类构造器的第一行!当然父类有默认构造器,子类就无需super了,Java会自动调用。 再说protected关键字。插一句,只有合理使用访问修饰符,程序才能更好的为我们服务!! 对于子类,为了使用父类的方法,我们可以修改它的访问修饰符为protected,而不是一股脑儿的写上public!一劳永逸的做法可能会带来更大的危害! 而对于类的成员变量,保持它的private! 最后是向上转型了,它是一个重要的方面。从上面的的代码中,我写上了Person person = new Yang("yang", "male", 23); 这样结果是将Yang向上转型为Person,带来的影响可能就是属性和方法的丢失,但是它将是安全的。 同时它最大的作用是.....子类能够提供父类更加强大的功能以适用于不同的场合,完成不同的操作。 不太清楚可以看看这两个: List<String> arrayList = new ArrayList<>(); 和 List<String> linkedList = new LinkedList<>(); 我们知道ArrayList是数组实现,查找更快;而LinkedList是链表实现,添加元素和删除元素效率更好! 但是向上转型有一个弊端,指向子类的父类引用因为向上转型了,它将只拥有父类的属性和方法,同时子类拥有而父类没有的方法,是无法使用了的! 所以,继承实现了软件的可重用性和可拓展性。但是Java是单继承的,并且继承也有多个弊端(上面有提),其实还有一个弊端是父类一旦改变,子类可能也得进行改变!所以慎用吧。 最后一个特性是多态了。多态性就是不同的子类型可以对同一个请求做出不同的操作。同时多态性分为编译时多态性和运行时多态性,对应着方法重载overload和方法重写override! 对于方法重写,存在在继承中。它作为运行时多态性的表现,首先需要子类继承和实现父类的方法,然后向上转型,父类引用子类对象,对同一件事作出不同的响应。 方法重写时,需要注意的是子类的访问修饰符的访问范围不能小于父类,如父类的一个方法修饰符为protected,那么子类继承时,只能选用public或者protected。除了访问修饰符,其余完全相同于父类! 对于方法重载,出现在同一个类中,它是编译时多态性的表现。定义为:同名的方法如果有不同的参数列表便视为重载。 最后有一道经典的题目作为结尾,我也不知道出自哪....Look and think! 1 public class A { 2 3 public String show(D obj) { 4 return ("Father and D"); 5 } 6 7 public String show(A obj) { 8 return ("Father and Father"); 9 }10 }11 12 class B extends A {13 14 public String show(B obj) {15 return ("Child and Child");16 }17 18 public String show(A obj) {19 return ("Child and Father");20 }21 }22 23 class C extends B {24 }25 26 class D extends B {27 }28 29 class Test {30 public static void main(String[] args) {31 A a1 = new A();32 A a2 = new B();33 B b = new B();34 C c = new C();35 D d = new D();36 37 System.out.println("1--" + a1.show(b));38 System.out.println("2--" + a1.show(c));39 System.out.println("3--" + a1.show(d));40 System.out.println("4--" + a2.show(b));41 System.out.println("5--" + a2.show(c));42 System.out.println("6--" + a2.show(d));43 System.out.println("7--" + b.show(b));44 System.out.println("8--" + b.show(c));45 System.out.println("9--" + b.show(d));46 }47 }
Java浅谈粗道 Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 我在学习Java的过程中主要围绕以下几个方面来学习: 1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 Java环境的搭建 要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 可以从http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2FJava.sun.com&urlrefer=464290c30a703c4c6bd6850093207346下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 解压安装。然后,进行环境设置。 1.对于Windows平台要进行以下设置: set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command set classpath=. YOUR_INSTALL_DIR\lib\tools.jar 2.对于Linux平台要编辑/etc/profile文件: JAVA_HOME=your_install_dir/JDK/j2sdk CLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr -e/lib/rt.jar:. PATH=$PATHJAVA_HOME/bin export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE INPUTRC JAVA_HOME CLASSPATH RESIN_HOME 最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 下面介绍一下JDK的几个重要的命令: ◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; ◆javac 编译器,由.java文件生成.class文件; ◆jar Java压缩打包工具; ◆Javadoc 文档生成器。 最后就是JDK document.tion,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 开始写自己的代码 现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 1.先用编辑器写一代码(我用的是Linux的vi): [stone@coremsg work]$ vi Hello.Java public class Hello{ public static void main(String []argc){ System.out.println("Hello Word!"); } } 2.编译: [stone@coremsg work]$ Javac Hello.Java 3.执行: [stone@coremsg work]$ Java Hello Hello Word! 成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 学习更多 如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 1.Java Web编程 对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。JavaServlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 2. J2EE的学习 J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 ◆了解J2EE中的技术术语的含义。 我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句??必须要在实践中动手去做才行。 ◆了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 ◆了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 ◆学习J2EE下的各种技术。 在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西
Java浅谈粗道 Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 我在学习Java的过程中主要围绕以下几个方面来学习: 1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 Java环境的搭建 要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 可以从http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2FJava.sun.com&urlrefer=464290c30a703c4c6bd6850093207346下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 解压安装。然后,进行环境设置。 1.对于Windows平台要进行以下设置: set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command set classpath=. YOUR_INSTALL_DIR\lib\tools.jar 2.对于Linux平台要编辑/etc/profile文件: JAVA_HOME=your_install_dir/JDK/j2sdk CLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr -e/lib/rt.jar:. PATH=$PATHJAVA_HOME/bin export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE INPUTRC JAVA_HOME CLASSPATH RESIN_HOME 最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 下面介绍一下JDK的几个重要的命令: ◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; ◆javac 编译器,由.java文件生成.class文件; ◆jar Java压缩打包工具; ◆Javadoc 文档生成器。 最后就是JDK document.tion,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 开始写自己的代码 现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 1.先用编辑器写一代码(我用的是Linux的vi): [stone@coremsg work]$ vi Hello.Java public class Hello{ public static void main(String []argc){ System.out.println("Hello Word!"); } } 2.编译: [stone@coremsg work]$ Javac Hello.Java 3.执行: [stone@coremsg work]$ Java Hello Hello Word! 成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 学习更多 如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 1.Java Web编程 对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。JavaServlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 2. J2EE的学习 J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 ◆了解J2EE中的技术术语的含义。 我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句??必须要在实践中动手去做才行。 ◆了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 ◆了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 ◆学习J2EE下的各种技术。 在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西
初学Java的朋友,建议您看一看 初学Java的朋友,建议您看一看 Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 我在学习Java的过程中主要围绕以下几个方面来学习: 1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 Java环境的搭建 要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 可以从http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2FJava.sun.com&urlrefer=464290c30a703c4c6bd6850093207346下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 解压安装。然后,进行环境设置。 1.对于Windows平台要进行以下设置: set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command set classpath=. YOUR_INSTALL_DIR\lib\tools.jar 2.对于Linux平台要编辑/etc/profile文件: JAVA_HOME=your_install_dir/JDK/j2sdk CLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr -e/lib/rt.jar:. PATH=$PATHJAVA_HOME/bin export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE INPUTRC JAVA_HOME CLASSPATH RESIN_HOME 最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 下面介绍一下JDK的几个重要的命令: ◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; ◆javac 编译器,由.java文件生成.class文件; ◆jar Java压缩打包工具; ◆Javadoc 文档生成器。 最后就是JDK document.tion,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 开始写自己的代码 现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 1.先用编辑器写一代码(我用的是Linux的vi): [stone@coremsg work]$ vi Hello.Java public class Hello{ public static void main(String []argc){ System.out.println("Hello Word!"); } } 2.编译: [stone@coremsg work]$ Javac Hello.Java 3.执行: [stone@coremsg work]$ Java Hello Hello Word! 成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 学习更多 如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 1.Java Web编程 对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 2. J2EE的学习 J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 ◆了解J2EE中的技术术语的含义。 我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句??必须要在实践中动手去做才行。 ◆了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 ◆了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 ◆学习J2EE下的各种技术。 在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西 更多资源: 请加群交流231158925 或 498101437相信您会喜欢的。
初学Java的朋友,建议您看一看 初学Java的朋友,建议您看一看 Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 我在学习Java的过程中主要围绕以下几个方面来学习: 1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 Java环境的搭建 要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 可以从http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2FJava.sun.com&urlrefer=464290c30a703c4c6bd6850093207346下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 解压安装。然后,进行环境设置。 1.对于Windows平台要进行以下设置: set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command set classpath=. YOUR_INSTALL_DIR\lib\tools.jar 2.对于Linux平台要编辑/etc/profile文件: JAVA_HOME=your_install_dir/JDK/j2sdk CLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr -e/lib/rt.jar:. PATH=$PATHJAVA_HOME/bin export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE INPUTRC JAVA_HOME CLASSPATH RESIN_HOME 最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 下面介绍一下JDK的几个重要的命令: ◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; ◆javac 编译器,由.java文件生成.class文件; ◆jar Java压缩打包工具; ◆Javadoc 文档生成器。 最后就是JDK document.tion,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 开始写自己的代码 现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 1.先用编辑器写一代码(我用的是Linux的vi): [stone@coremsg work]$ vi Hello.Java public class Hello{ public static void main(String []argc){ System.out.println("Hello Word!"); } } 2.编译: [stone@coremsg work]$ Javac Hello.Java 3.执行: [stone@coremsg work]$ Java Hello Hello Word! 成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 学习更多 如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 1.Java Web编程 对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 2. J2EE的学习 J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 ◆了解J2EE中的技术术语的含义。 我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句??必须要在实践中动手去做才行。 ◆了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 ◆了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 ◆学习J2EE下的各种技术。 在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西 更多资源: 请加群交流231158925 或 498101437相信您会喜欢的。
初学Java的朋友,建议您看一看 初学Java的朋友,建议您看一看 Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 我在学习Java的过程中主要围绕以下几个方面来学习: 1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 Java环境的搭建 要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 可以从http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2FJava.sun.com&urlrefer=464290c30a703c4c6bd6850093207346下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 解压安装。然后,进行环境设置。 1.对于Windows平台要进行以下设置: set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command set classpath=. YOUR_INSTALL_DIR\lib\tools.jar 2.对于Linux平台要编辑/etc/profile文件: JAVA_HOME=your_install_dir/JDK/j2sdk CLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr -e/lib/rt.jar:. PATH=$PATHJAVA_HOME/bin export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE INPUTRC JAVA_HOME CLASSPATH RESIN_HOME 最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 下面介绍一下JDK的几个重要的命令: ◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; ◆javac 编译器,由.java文件生成.class文件; ◆jar Java压缩打包工具; ◆Javadoc 文档生成器。 最后就是JDK document.tion,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 开始写自己的代码 现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 1.先用编辑器写一代码(我用的是Linux的vi): [stone@coremsg work]$ vi Hello.Java public class Hello{ public static void main(String []argc){ System.out.println("Hello Word!"); } } 2.编译: [stone@coremsg work]$ Javac Hello.Java 3.执行: [stone@coremsg work]$ Java Hello Hello Word! 成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 学习更多 如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 1.Java Web编程 对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。JavaServlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 2. J2EE的学习 J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 ◆了解J2EE中的技术术语的含义。 我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句??必须要在实践中动手去做才行。 ◆了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 ◆了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 ◆学习J2EE下的各种技术。 在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西 更多资源: 请加群交流231158925 或 498101437相信您会喜欢的。
初学Java的朋友,建议您看一看 Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 我在学习Java的过程中主要围绕以下几个方面来学习: 1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 Java环境的搭建 要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 可以从http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2FJava.sun.com&urlrefer=464290c30a703c4c6bd6850093207346下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 解压安装。然后,进行环境设置。 1.对于Windows平台要进行以下设置: set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command set classpath=. YOUR_INSTALL_DIR\lib\tools.jar 2.对于Linux平台要编辑/etc/profile文件: JAVA_HOME=your_install_dir/JDK/j2sdk CLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr -e/lib/rt.jar:. PATH=$PATHJAVA_HOME/bin export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE INPUTRC JAVA_HOME CLASSPATH RESIN_HOME 最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 下面介绍一下JDK的几个重要的命令: ◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; ◆javac 编译器,由.java文件生成.class文件; ◆jar Java压缩打包工具; ◆Javadoc 文档生成器。 最后就是JDK document.tion,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 开始写自己的代码 现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 1.先用编辑器写一代码(我用的是Linux的vi): [stone@coremsg work]$ vi Hello.Java public class Hello{ public static void main(String []argc){ System.out.println("Hello Word!"); } } 2.编译: [stone@coremsg work]$ Javac Hello.Java 3.执行: [stone@coremsg work]$ Java Hello Hello Word! 成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 学习更多 如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 1.Java Web编程 对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。JavaServlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 2. J2EE的学习 J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 ◆了解J2EE中的技术术语的含义。 我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句??必须要在实践中动手去做才行。 ◆了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 ◆了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 ◆学习J2EE下的各种技术。 在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西 更多资源: 请加群交流231158925 或 498101437相信您会喜欢的。
初学Java的朋友,建议您看一看 Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 我在学习Java的过程中主要围绕以下几个方面来学习: 1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 Java环境的搭建 要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 可以从http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2FJava.sun.com&urlrefer=464290c30a703c4c6bd6850093207346下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 解压安装。然后,进行环境设置。 1.对于Windows平台要进行以下设置: set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command set classpath=. YOUR_INSTALL_DIR\lib\tools.jar 2.对于Linux平台要编辑/etc/profile文件: JAVA_HOME=your_install_dir/JDK/j2sdk CLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr -e/lib/rt.jar:. PATH=$PATHJAVA_HOME/bin export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE INPUTRC JAVA_HOME CLASSPATH RESIN_HOME 最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 下面介绍一下JDK的几个重要的命令: ◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; ◆javac 编译器,由.java文件生成.class文件; ◆jar Java压缩打包工具; ◆Javadoc 文档生成器。 最后就是JDK document.tion,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 开始写自己的代码 现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 1.先用编辑器写一代码(我用的是Linux的vi): [stone@coremsg work]$ vi Hello.Java public class Hello{ public static void main(String []argc){ System.out.println("Hello Word!"); } } 2.编译: [stone@coremsg work]$ Javac Hello.Java 3.执行: [stone@coremsg work]$ Java Hello Hello Word! 成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 学习更多 如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 1.Java Web编程 对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。JavaServlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 2. J2EE的学习 J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 ◆了解J2EE中的技术术语的含义。 我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句??必须要在实践中动手去做才行。 ◆了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 ◆了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 ◆学习J2EE下的各种技术。 在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西 更多资源: 请加群交流231158925 或 498101437相信您会喜欢的。
Java初学者看看 Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 我在学习Java的过程中主要围绕以下几个方面来学习: 1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 Java环境的搭建 要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 可以从http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2FJava.sun.com&urlrefer=464290c30a703c4c6bd6850093207346下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 解压安装。然后,进行环境设置。 1.对于Windows平台要进行以下设置: set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command set classpath=. YOUR_INSTALL_DIR\lib\tools.jar 2.对于Linux平台要编辑/etc/profile文件: JAVA_HOME=your_install_dir/JDK/j2sdk CLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr -e/lib/rt.jar:. PATH=$PATHJAVA_HOME/bin export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE INPUTRC JAVA_HOME CLASSPATH RESIN_HOME 最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 下面介绍一下JDK的几个重要的命令: ◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; ◆javac 编译器,由.java文件生成.class文件; ◆jar Java压缩打包工具; ◆Javadoc 文档生成器。 最后就是JDK document.tion,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 开始写自己的代码 现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 1.先用编辑器写一代码(我用的是Linux的vi): [stone@coremsg work]$ vi Hello.Java public class Hello{ public static void main(String []argc){ System.out.println("Hello Word!"); } } 2.编译: [stone@coremsg work]$ Javac Hello.Java 3.执行: [stone@coremsg work]$ Java Hello Hello Word! 成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 学习更多 如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 1.Java Web编程 对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。JavaServlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 2. J2EE的学习 J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 ◆了解J2EE中的技术术语的含义。 我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句??必须要在实践中动手去做才行。 ◆了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 ◆了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 ◆学习J2EE下的各种技术。 在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西 更多资源: 请加群交流231158925 或 498101437相信您会喜欢的。
初学Java的朋友,建议您看一看 Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 我在学习Java的过程中主要围绕以下几个方面来学习: 1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 Java环境的搭建 要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 可以从http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2FJava.sun.com&urlrefer=464290c30a703c4c6bd6850093207346下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 解压安装。然后,进行环境设置。 1.对于Windows平台要进行以下设置: set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command set classpath=. YOUR_INSTALL_DIR\lib\tools.jar 2.对于Linux平台要编辑/etc/profile文件: JAVA_HOME=your_install_dir/JDK/j2sdk CLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr -e/lib/rt.jar:. PATH=$PATHJAVA_HOME/bin export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE INPUTRC JAVA_HOME CLASSPATH RESIN_HOME 最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 下面介绍一下JDK的几个重要的命令: ◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; ◆javac 编译器,由.java文件生成.class文件; ◆jar Java压缩打包工具; ◆Javadoc 文档生成器。 最后就是JDK document.tion,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 开始写自己的代码 现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 1.先用编辑器写一代码(我用的是Linux的vi): [stone@coremsg work]$ vi Hello.Java public class Hello{ public static void main(String []argc){ System.out.println("Hello Word!"); } } 2.编译: [stone@coremsg work]$ Javac Hello.Java 3.执行: [stone@coremsg work]$ Java Hello Hello Word! 成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 学习更多 如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 1.Java Web编程 对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。JavaServlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 2. J2EE的学习 J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 ◆了解J2EE中的技术术语的含义。 我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句??必须要在实践中动手去做才行。 ◆了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 ◆了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 ◆学习J2EE下的各种技术。 在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西 更多资源: 请加群交流231158925 或 498101437相信您会喜欢的。
初学Java的朋友,建议您看一看 Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 我在学习Java的过程中主要围绕以下几个方面来学习: 1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 Java环境的搭建 要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 可以从http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2FJava.sun.com&urlrefer=464290c30a703c4c6bd6850093207346下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 解压安装。然后,进行环境设置。 1.对于Windows平台要进行以下设置: set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command set classpath=. YOUR_INSTALL_DIR\lib\tools.jar 2.对于Linux平台要编辑/etc/profile文件: JAVA_HOME=your_install_dir/JDK/j2sdk CLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr -e/lib/rt.jar:. PATH=$PATHJAVA_HOME/bin export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE INPUTRC JAVA_HOME CLASSPATH RESIN_HOME 最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 下面介绍一下JDK的几个重要的命令: ◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; ◆javac 编译器,由.java文件生成.class文件; ◆jar Java压缩打包工具; ◆Javadoc 文档生成器。 最后就是JDK document.tion,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 开始写自己的代码 现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 1.先用编辑器写一代码(我用的是Linux的vi): [stone@coremsg work]$ vi Hello.Java public class Hello{ public static void main(String []argc){ System.out.println("Hello Word!"); } } 2.编译: [stone@coremsg work]$ Javac Hello.Java 3.执行: [stone@coremsg work]$ Java Hello Hello Word! 成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 学习更多 如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 1.Java Web编程 对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。JavaServlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 2. J2EE的学习 J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 ◆了解J2EE中的技术术语的含义。 我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句??必须要在实践中动手去做才行。 ◆了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 ◆了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 ◆学习J2EE下的各种技术。 在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西
初学Java的朋友,建议您看一看 Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 我在学习Java的过程中主要围绕以下几个方面来学习: 1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 Java环境的搭建 要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 可以从http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2FJava.sun.com&urlrefer=464290c30a703c4c6bd6850093207346下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 解压安装。然后,进行环境设置。 1.对于Windows平台要进行以下设置: set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command set classpath=. YOUR_INSTALL_DIR\lib\tools.jar 2.对于Linux平台要编辑/etc/profile文件: JAVA_HOME=your_install_dir/JDK/j2sdk CLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr -e/lib/rt.jar:. PATH=$PATHJAVA_HOME/bin export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE INPUTRC JAVA_HOME CLASSPATH RESIN_HOME 最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 下面介绍一下JDK的几个重要的命令: ◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; ◆javac 编译器,由.java文件生成.class文件; ◆jar Java压缩打包工具; ◆Javadoc 文档生成器。 最后就是JDK document.tion,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 开始写自己的代码 现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 1.先用编辑器写一代码(我用的是Linux的vi): [stone@coremsg work]$ vi Hello.Java public class Hello{ public static void main(String []argc){ System.out.println("Hello Word!"); } } 2.编译: [stone@coremsg work]$ Javac Hello.Java 3.执行: [stone@coremsg work]$ Java Hello Hello Word! 成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 学习更多 如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 1.Java Web编程 对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。JavaServlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 2. J2EE的学习 J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 ◆了解J2EE中的技术术语的含义。 我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句??必须要在实践中动手去做才行。 ◆了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 ◆了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 ◆学习J2EE下的各种技术。 在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西
初学Java的朋友,建议您看一看 Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 我在学习Java的过程中主要围绕以下几个方面来学习: 1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 Java环境的搭建 要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 可以从http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2FJava.sun.com&urlrefer=464290c30a703c4c6bd6850093207346下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 解压安装。然后,进行环境设置。 1.对于Windows平台要进行以下设置: set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command set classpath=. YOUR_INSTALL_DIR\lib\tools.jar 2.对于Linux平台要编辑/etc/profile文件: JAVA_HOME=your_install_dir/JDK/j2sdk CLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr -e/lib/rt.jar:. PATH=$PATHJAVA_HOME/bin export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE INPUTRC JAVA_HOME CLASSPATH RESIN_HOME 最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 下面介绍一下JDK的几个重要的命令: ◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; ◆javac 编译器,由.java文件生成.class文件; ◆jar Java压缩打包工具; ◆Javadoc 文档生成器。 最后就是JDK document.tion,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 开始写自己的代码 现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 1.先用编辑器写一代码(我用的是Linux的vi): [stone@coremsg work]$ vi Hello.Java public class Hello{ public static void main(String []argc){ System.out.println("Hello Word!"); } } 2.编译: [stone@coremsg work]$ Javac Hello.Java 3.执行: [stone@coremsg work]$ Java Hello Hello Word! 成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 学习更多 如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 1.Java Web编程 对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。JavaServlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 2. J2EE的学习 J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 ◆了解J2EE中的技术术语的含义。 我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句??必须要在实践中动手去做才行。 ◆了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 ◆了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 ◆学习J2EE下的各种技术。 在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西 更多资源: 请加群交流231158925 或 498101437相信您会喜欢的。
Java心得 Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 我在学习Java的过程中主要围绕以下几个方面来学习: 1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 Java环境的搭建 要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 可以从http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2FJava.sun.com&urlrefer=464290c30a703c4c6bd6850093207346下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 解压安装。然后,进行环境设置。 1.对于Windows平台要进行以下设置: set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command set classpath=. YOUR_INSTALL_DIR\lib\tools.jar 2.对于Linux平台要编辑/etc/profile文件: JAVA_HOME=your_install_dir/JDK/j2sdk CLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr -e/lib/rt.jar:. PATH=$PATHJAVA_HOME/bin export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE INPUTRC JAVA_HOME CLASSPATH RESIN_HOME 最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 下面介绍一下JDK的几个重要的命令: ◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; ◆javac 编译器,由.java文件生成.class文件; ◆jar Java压缩打包工具; ◆Javadoc 文档生成器。 最后就是JDK document.tion,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 开始写自己的代码 现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 1.先用编辑器写一代码(我用的是Linux的vi): [stone@coremsg work]$ vi Hello.Java public class Hello{ public static void main(String []argc){ System.out.println("Hello Word!"); } } 2.编译: [stone@coremsg work]$ Javac Hello.Java 3.执行: [stone@coremsg work]$ Java Hello Hello Word! 成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 学习更多 如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 1.Java Web编程 对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。JavaServlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 2. J2EE的学习 J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 ◆了解J2EE中的技术术语的含义。 我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句??必须要在实践中动手去做才行。 ◆了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 ◆了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 ◆学习J2EE下的各种技术。 在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西 更多资源: 请加群交流231158925 或 498101437相信您会喜欢的。
Java的初学咂道 Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 我在学习Java的过程中主要围绕以下几个方面来学习: 1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 Java环境的搭建 要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 可以从http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2FJava.sun.com&urlrefer=464290c30a703c4c6bd6850093207346下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 解压安装。然后,进行环境设置。 1.对于Windows平台要进行以下设置: set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command set classpath=. YOUR_INSTALL_DIR\lib\tools.jar 2.对于Linux平台要编辑/etc/profile文件: JAVA_HOME=your_install_dir/JDK/j2sdk CLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr -e/lib/rt.jar:. PATH=$PATHJAVA_HOME/bin export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE INPUTRC JAVA_HOME CLASSPATH RESIN_HOME 最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 下面介绍一下JDK的几个重要的命令: ◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; ◆javac 编译器,由.java文件生成.class文件; ◆jar Java压缩打包工具; ◆Javadoc 文档生成器。 最后就是JDK document.tion,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 开始写自己的代码 现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 1.先用编辑器写一代码(我用的是Linux的vi): [stone@coremsg work]$ vi Hello.Java public class Hello{ public static void main(String []argc){ System.out.println("Hello Word!"); } } 2.编译: [stone@coremsg work]$ Javac Hello.Java 3.执行: [stone@coremsg work]$ Java Hello Hello Word! 成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 学习更多 如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 1.Java Web编程 对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。JavaServlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 2. J2EE的学习 J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 ◆了解J2EE中的技术术语的含义。 我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句??必须要在实践中动手去做才行。 ◆了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 ◆了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 ◆学习J2EE下的各种技术。 在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西 更多资源: 请加群交流231158925 或 498101437相信您会喜欢的。
Java的浅谈粗道 Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 我在学习Java的过程中主要围绕以下几个方面来学习: 1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 Java环境的搭建 要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 可以从http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2FJava.sun.com&urlrefer=464290c30a703c4c6bd6850093207346下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 解压安装。然后,进行环境设置。 1.对于Windows平台要进行以下设置: set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command set classpath=. YOUR_INSTALL_DIR\lib\tools.jar 2.对于Linux平台要编辑/etc/profile文件: JAVA_HOME=your_install_dir/JDK/j2sdk CLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr -e/lib/rt.jar:. PATH=$PATHJAVA_HOME/bin export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE INPUTRC JAVA_HOME CLASSPATH RESIN_HOME 最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 下面介绍一下JDK的几个重要的命令: ◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; ◆javac 编译器,由.java文件生成.class文件; ◆jar Java压缩打包工具; ◆Javadoc 文档生成器。 最后就是JDK document.tion,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 开始写自己的代码 现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 1.先用编辑器写一代码(我用的是Linux的vi): [stone@coremsg work]$ vi Hello.Java public class Hello{ public static void main(String []argc){ System.out.println("Hello Word!"); } } 2.编译: [stone@coremsg work]$ Javac Hello.Java 3.执行: [stone@coremsg work]$ Java Hello Hello Word! 成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 学习更多 如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 1.Java Web编程 对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。JavaServlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 2. J2EE的学习 J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 ◆了解J2EE中的技术术语的含义。 我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句??必须要在实践中动手去做才行。 ◆了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 ◆了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 ◆学习J2EE下的各种技术。 在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西
Java的浅谈粗道 Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 我在学习Java的过程中主要围绕以下几个方面来学习: 1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 Java环境的搭建 要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 可以从http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2FJava.sun.com&urlrefer=464290c30a703c4c6bd6850093207346下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 解压安装。然后,进行环境设置。 1.对于Windows平台要进行以下设置: set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command set classpath=. YOUR_INSTALL_DIR\lib\tools.jar 2.对于Linux平台要编辑/etc/profile文件: JAVA_HOME=your_install_dir/JDK/j2sdk CLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr -e/lib/rt.jar:. PATH=$PATHJAVA_HOME/bin export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE INPUTRC JAVA_HOME CLASSPATH RESIN_HOME 最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 下面介绍一下JDK的几个重要的命令: ◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; ◆javac 编译器,由.java文件生成.class文件; ◆jar Java压缩打包工具; ◆Javadoc 文档生成器。 最后就是JDK document.tion,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 开始写自己的代码 现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 1.先用编辑器写一代码(我用的是Linux的vi): [stone@coremsg work]$ vi Hello.Java public class Hello{ public static void main(String []argc){ System.out.println("Hello Word!"); } } 2.编译: [stone@coremsg work]$ Javac Hello.Java 3.执行: [stone@coremsg work]$ Java Hello Hello Word! 成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 学习更多 如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 1.Java Web编程 对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。JavaServlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 2. J2EE的学习 J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 ◆了解J2EE中的技术术语的含义。 我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句??必须要在实践中动手去做才行。 ◆了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 ◆了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 ◆学习J2EE下的各种技术。 在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西 学习交流平台,群号二三一一,五八,后面是九二五,连在一起就可以进群咯!有福利哦,有海量视频和资料免费看
Java浅谈 Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。 我在学习Java的过程中主要围绕以下几个方面来学习: 1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。 2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。 3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。 4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。 学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。 Java环境的搭建 要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。 可以从http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2FJava.sun.com&urlrefer=464290c30a703c4c6bd6850093207346下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。 解压安装。然后,进行环境设置。 1.对于Windows平台要进行以下设置: set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command set classpath=. YOUR_INSTALL_DIR\lib\tools.jar 2.对于Linux平台要编辑/etc/profile文件: JAVA_HOME=your_install_dir/JDK/j2sdk CLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr -e/lib/rt.jar:. PATH=$PATHJAVA_HOME/bin export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE INPUTRC JAVA_HOME CLASSPATH RESIN_HOME 最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。 下面介绍一下JDK的几个重要的命令: ◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令; ◆javac 编译器,由.java文件生成.class文件; ◆jar Java压缩打包工具; ◆Javadoc 文档生成器。 最后就是JDK document.tion,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。 开始写自己的代码 现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。 1.先用编辑器写一代码(我用的是Linux的vi): [stone@coremsg work]$ vi Hello.Java public class Hello{ public static void main(String []argc){ System.out.println("Hello Word!"); } } 2.编译: [stone@coremsg work]$ Javac Hello.Java 3.执行: [stone@coremsg work]$ Java Hello Hello Word! 成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。 学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。 在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。 学习更多 如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。 1.Java Web编程 对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。JavaServlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。 2. J2EE的学习 J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。 ◆了解J2EE中的技术术语的含义。 我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句??必须要在实践中动手去做才行。 ◆了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。 MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。 ◆了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。 平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。 ◆学习J2EE下的各种技术。 在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西
Java浅谈粗道 Java总有它的千般长处使你选择它,但这些随意翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和进程写出来,供初学者做个参看。 我在学习Java的进程中首要盘绕以下几个方面来学习: 1.时间提示自己Java是一种OOP言语东西,而不仅仅是编码,只要这么才华整体把握和运用Java。 2.在学习的进程中,最好可以了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的比如工作出效果就可以。要留神,即使对一个简略的比如也要有耐性去揣摩、调试、改动。 3.在学习的进程中一定要着手做、写代码,而不是抱一本书看看就行。很多东西和体会有必要自己着手才华实在归于自己,最好能参与一些实习的项目。 4.在学到一定时期后,你初步希望用学过的东西做些啥。这时的你应当初步学习一些更多、更凌乱的知识,比如J2EE途径的构建、EJB的开发等。对于这一有些,我建议最好找一本较薄的书先了解一个大概,心里有个整体的知道,对更多的技术术语做个初步把握。我认为这个时期看看《J2EE技术实习》很不错,它可以让你了解J2EE包括的各种技术和构造,一同供应很多实习的比如来加深对J2EE的整体了解。 学习Java的喜好和决计起了很关键的效果。在有了上述基础后,我便初步一步一步地学习Java。 Java环境的树立 要工作Java程序,有必要设备JDK。JDK是悉数Java的基地,其间包括了Java编译器、JVM、很多的Java东西以及Java基础API。 可以从http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2FJava.sun.com&urlrefer=464290c30a703c4c6bd6850093207346下载JDK,有1.4版别和1.31版别。我的学习环境中首要,选用的是1.31版别。 解压设备。然后,进行环境设置。 1.对于Windows途径要进行以下设置: set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command set classpath=. YOUR_INSTALL_DIR\lib\tools.jar 2.对于Linux途径要修正/etc/profile文件: JAVA_HOME=your_install_dir/JDK/j2sdk CLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr -e/lib/rt.jar:. PATH=$PATHJAVA_HOME/bin export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE INPUTRC JAVA_HOME CLASSPATH RESIN_HOME 终究,在终端上输入Java看能不能找到这个指令,假设能找到设备就成功了。 下面介绍一下JDK的几个首要的指令: ◆Java实行东西,是发动JVM(虚拟机)并实行class(BYTE CODE)文件的指令; ◆javac 编译器,由.java文件生成.class文件; ◆jar Java紧缩打包东西; ◆Javadoc 文档生成器。 终究即是JDK document.tion,这是JDK的联机帮忙文档,是最有用和最首要的学习参看文档,应当多看。 初步写自己的代码 如今环境有了,应当写个简略的代码进行测试了。仍是从经典的“hello word”初步。 1.先用修正器写一代码(我用的是Linux的vi): [stone@coremsg work]$ vi Hello.Java public class Hello{ public static void main(String []argc){ System.out.println("Hello Word!"); } } 2.编译: [stone@coremsg work]$ Javac Hello.Java 3.实行: [stone@coremsg work]$ Java Hello Hello Word! 成功了!这即是我的第一个Java程序。从那时起我知道已初步走进Java的世界,接下来就靠自己的极力了。在这个进程中,笔者认为有几点需求留神。 学习一门新的言语,参看书是离不开的。我的建议是初步最好找一本篇幅较短的入门书来学习那些最简略、最基本的东西,包括学习Java语法等。一同,对一个最简略的程序也应当多去调试,多想想假设改动一下会出现啥效果?为啥有必要那样写?多去想想这些疑问然后去操作,会让你有更多的收成。这么重复地考虑是很有用的。此外,在这一时期还应当多看JDK的联机帮忙,尽量多地把握JDK供应的Java基本类库API。 在有一定基础、可以写一些简略的程序后,可以初步看《Thinking in Java》这本书。它对比完整地介绍了Java的语法、面向对象的特性、基地类库等。通过这一层次的学习可以加深对Java的了解和底层原理的运用,一同又可以完整地了解Java的悉数体系。在这一时期,应当关键学习Java的面向对象编程言语的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、掩盖、Java的失常处理机制等,要对上述概念有非常理解的了解。这么做的目的,是要让自己把这些技术运用到实习中进行合理的程序计划(比如,你会考虑一个类是用抽象仍是接口来计划等)。这就请求有必要在很多的实习中去运用和学习。这也是开始很多朋友给我的建议。 学习更多 假设要用Java来完结各种功用更强壮的任务,那么就要学习言语以外的更多的东西。 1.Java Web编程 对于Java Web 编程来说,应当并且有必要了解和把握HTTP协议,可以参看 Stevens的《TCP/IP 详解》第三卷。JavaServlet技术供应了生成动态Web页面内容的才干,这在你的Java项目中是最基本的功用之一,所以有必要学习。通过这一时期的学习应当把握Servlet/JSP的Web编程。 2. J2EE的学习 J2EE包括的技术太多了。假设你想坐在桌子周围抱着一大堆书来学习的话,效果不大的。我建议在初步这一时期的学习的时分,可以按以下过程来做,总的思想是“整体把握,各个击破”。 ◆了解J2EE中的技术术语的意义。 我的感触是J2EE规范中涉及到的各种技术很多,假设一初步就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其间的技术有个大概的了解,比如EJB、JavaIDL、JTA等。也许你不知道怎样去写一个EJB,但是要知道啥是EJB、它能做啥,当有了这么的概念后,再去有目的地学习它就会快很多。我还要再重复一句??有必要要在实习中着手去做才行。 ◆了解J2EE中的计划方式,这么能帮忙你对J2EE做个整体把握。 MVC开发方式被证实是有用的处理方法之一。它可以分别数据访问和数据体现。你可以开发一个有伸缩性的、便于拓展的控制器,来维护悉数流程。通过这一层次的学习,当你面对一个项目的时分,应当首要把握它的整体架构的计划,以及决议选用J2EE规范中的哪些技术。 ◆了解一些J2EE途径的典型案列,加深对这一技术的概念和了解。 往常可以多留神这方面,了解一些典型案例,分析它为啥要选用那个时间?那样做能到达啥样的目的?然后联系到自己身边的项目是不是可以作为参看。 ◆学习J2EE下的各种技术。 在有了前几时期的学习后,可以自己树立一个J2EE途径初步具体学习每一种技术。你可以参与公司有关项目进行学习,也可以自己树立一个途径进行学习。这时分应当找点有关的书来一步一步学习,没有捷径可走。假设你不满足于这些,那么还应当更深化地学习UML、计划方式等方面的东
Java浅谈粗道 Java总有它的千般长处使你选择它,但这些随意翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和进程写出来,供初学者做个参看。 我在学习Java的进程中首要盘绕以下几个方面来学习: 1.时间提示自己Java是一种OOP言语东西,而不仅仅是编码,只要这么才华整体把握和运用Java。 2.在学习的进程中,最好可以了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的比如工作出效果就可以。要留神,即使对一个简略的比如也要有耐性去揣摩、调试、改动。 3.在学习的进程中一定要着手做、写代码,而不是抱一本书看看就行。很多东西和体会有必要自己着手才华实在归于自己,最好能参与一些实习的项目。 4.在学到一定时期后,你初步希望用学过的东西做些啥。这时的你应当初步学习一些更多、更凌乱的知识,比如J2EE途径的构建、EJB的开发等。对于这一有些,我建议最好找一本较薄的书先了解一个大概,心里有个整体的知道,对更多的技术术语做个初步把握。我认为这个时期看看《J2EE技术实习》很不错,它可以让你了解J2EE包括的各种技术和构造,一同供应很多实习的比如来加深对J2EE的整体了解。 学习Java的喜好和决计起了很关键的效果。在有了上述基础后,我便初步一步一步地学习Java。 Java环境的树立 要工作Java程序,有必要设备JDK。JDK是悉数Java的基地,其间包括了Java编译器、JVM、很多的Java东西以及Java基础API。 可以从http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2FJava.sun.com&urlrefer=464290c30a703c4c6bd6850093207346下载JDK,有1.4版别和1.31版别。我的学习环境中首要,选用的是1.31版别。 解压设备。然后,进行环境设置。 1.对于Windows途径要进行以下设置: set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command set classpath=. YOUR_INSTALL_DIR\lib\tools.jar 2.对于Linux途径要修正/etc/profile文件: JAVA_HOME=your_install_dir/JDK/j2sdk CLASSPATH=$JAVA_HOME/lib/tools.jarJAVA_HOME/lib/td.jarJAVA_HOME/jr -e/lib/rt.jar:. PATH=$PATHJAVA_HOME/bin export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE INPUTRC JAVA_HOME CLASSPATH RESIN_HOME 终究,在终端上输入Java看能不能找到这个指令,假设能找到设备就成功了。 下面介绍一下JDK的几个首要的指令: ◆Java实行东西,是发动JVM(虚拟机)并实行class(BYTE CODE)文件的指令; ◆javac 编译器,由.java文件生成.class文件; ◆jar Java紧缩打包东西; ◆Javadoc 文档生成器。 终究即是JDK document.tion,这是JDK的联机帮忙文档,是最有用和最首要的学习参看文档,应当多看。 初步写自己的代码 如今环境有了,应当写个简略的代码进行测试了。仍是从经典的“hello word”初步。 1.先用修正器写一代码(我用的是Linux的vi): [stone@coremsg work]$ vi Hello.Java public class Hello{ public static void main(String []argc){ System.out.println("Hello Word!"); } } 2.编译: [stone@coremsg work]$ Javac Hello.Java 3.实行: [stone@coremsg work]$ Java Hello Hello Word! 成功了!这即是我的第一个Java程序。从那时起我知道已初步走进Java的世界,接下来就靠自己的极力了。在这个进程中,笔者认为有几点需求留神。 学习一门新的言语,参看书是离不开的。我的建议是初步最好找一本篇幅较短的入门书来学习那些最简略、最基本的东西,包括学习Java语法等。一同,对一个最简略的程序也应当多去调试,多想想假设改动一下会出现啥效果?为啥有必要那样写?多去想想这些疑问然后去操作,会让你有更多的收成。这么重复地考虑是很有用的。此外,在这一时期还应当多看JDK的联机帮忙,尽量多地把握JDK供应的Java基本类库API。 在有一定基础、可以写一些简略的程序后,可以初步看《Thinking in Java》这本书。它对比完整地介绍了Java的语法、面向对象的特性、基地类库等。通过这一层次的学习可以加深对Java的了解和底层原理的运用,一同又可以完整地了解Java的悉数体系。在这一时期,应当关键学习Java的面向对象编程言语的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、掩盖、Java的失常处理机制等,要对上述概念有非常理解的了解。这么做的目的,是要让自己把这些技术运用到实习中进行合理的程序计划(比如,你会考虑一个类是用抽象仍是接口来计划等)。这就请求有必要在很多的实习中去运用和学习。这也是开始很多朋友给我的建议。 学习更多 假设要用Java来完结各种功用更强壮的任务,那么就要学习言语以外的更多的东西。 1.Java Web编程 对于Java Web 编程来说,应当并且有必要了解和把握HTTP协议,可以参看 Stevens的《TCP/IP 详解》第三卷。JavaServlet技术供应了生成动态Web页面内容的才干,这在你的Java项目中是最基本的功用之一,所以有必要学习。通过这一时期的学习应当把握Servlet/JSP的Web编程。 2. J2EE的学习 J2EE包括的技术太多了。假设你想坐在桌子周围抱着一大堆书来学习的话,效果不大的。我建议在初步这一时期的学习的时分,可以按以下过程来做,总的思想是“整体把握,各个击破”。 ◆了解J2EE中的技术术语的意义。 我的感触是J2EE规范中涉及到的各种技术很多,假设一初步就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其间的技术有个大概的了解,比如EJB、JavaIDL、JTA等。也许你不知道怎样去写一个EJB,但是要知道啥是EJB、它能做啥,当有了这么的概念后,再去有目的地学习它就会快很多。我还要再重复一句??有必要要在实习中着手去做才行。 ◆了解J2EE中的计划方式,这么能帮忙你对J2EE做个整体把握。 MVC开发方式被证实是有用的处理方法之一。它可以分别数据访问和数据体现。你可以开发一个有伸缩性的、便于拓展的控制器,来维护悉数流程。通过这一层次的学习,当你面对一个项目的时分,应当首要把握它的整体架构的计划,以及决议选用J2EE规范中的哪些技术。 ◆了解一些J2EE途径的典型案列,加深对这一技术的概念和了解。 往常可以多留神这方面,了解一些典型案例,分析它为啥要选用那个时间?那样做能到达啥样的目的?然后联系到自己身边的项目是不是可以作为参看。 ◆学习J2EE下的各种技术。 在有了前几时期的学习后,可以自己树立一个J2EE途径初步具体学习每一种技术。你可以参与公司有关项目进行学习,也可以自己树立一个途径进行学习。这时分应当找点有关的书来一步一步学习,没有捷径可走。假设你不满足于这些,那么还应当更深化地学习UML、计划方式等方面的东
培训学校是选择二三线城市的好,还是选择北上广深的好? 有很多学员想要培训IT技术,想做程序员。但一直在纠结,到底应该选择二三线城市的培训机构好呢,还是选择北上广深的培训机构好呢?各有优势吧,二三线城市的培训机构,培训的成本可能要第一点,北上广深的培训成本可能要高一点。但最重要的一点,在北上广深培训的话,资源相对就多得多。不光是学习的资源,更多的是人脉和机会。毕竟北上广深优秀的人要多得多,当你认识的人群的层次不同了,你的机会也就跟以前不同了。所以个人认为,选择北上广深的培训机构要更靠谱。 今年七月中旬来的北京尚学堂,为什么来北京尚学堂呢?长沙不是也有吗?身边好多人问这个问题,其实这个问题我觉得很简单的想一下就会有答案。目前中国软件行业的前沿在北上广深,这是不容置疑的!想入这一行就得来前沿的地方,好好了解自己想加入的行业的前景,虽然现在社会的信息传递的很快,但是不亲身经历怎么会有自己的理解! 其实我深思了许久,最后决定选择从事java编程这个行业。当一名软件工程师。原因很简单,首先我在校所学的专业和这个相关,做软件开发比较对口,不至于荒废四年所学的东西;其次我自己也比较喜欢这个专业。俗话说兴趣是最好的老师。再次,软件开发虽然不比前些年那么景气,可至少也算个白领,收入还是相当可观的。但与此同时自己也心里没底,毕竟在学校里学的都是些“小儿科”的东西,没有做过真正的项目,甚至当时连J2EE都没听说过,这样的水平能找到开发工作吗?所以我来了尚学堂。 在尚学堂学习的日子,枯燥、乏味,但是学习很充实,每天早起学习,晚上睡觉前学习,不停地学习,不停地敲代码,很辛苦啊,但是咱还是咬着牙挺过来了,很有吃得苦中苦方为人上人的感觉!尚学堂的课程安排的很紧张,四个半月里讲的东西很多,不下苦功夫根本就不能全部理解下来。现在回味起来,想自己点个赞。 尚学堂的师资力量真的让我很惊讶,老师的水平都是相当高的,最重要的是老师给我们授课的过程中,始终站在我们的角度上考虑,每个知识点都能用通俗易懂的语言来陈述,并且进行了大量的举例,能让我们有一种真正开发的感觉,而且知识的更新速度也是非常强的,也就是说,在尚学堂学到得知识,当你毕业了会很容易在公司上手的。其实培训不仅是提高了自己的专业技术水平,同时也从其中体验出了不少做人的道理,那就是从欣赏领导,欣赏同事,欣赏公司,欣赏自己的工作环境,欣赏自己的工作岗位做起,逐步的养成尊重别人,肯定正向的欣赏习惯,使自己在一个理想的工作环境中,不断成长起来。如果把IT技术比作自己心目中的圣殿的话,那么就要知道通向这个圣殿的路确实很窄,并且走的人很多,要想到达圣殿,就必须把握IT技术的发展脉搏,坚持不懈的给自己换脑充电,不耻下问,博彩众长。也只有这样自己方可始能见效,尚学堂不仅在技术授课上做的很好,而且也注重沟通方面的问题,总之,所有你能想到的,尚学堂都帮你想到了,这个是我觉得最有亮点的地方。总之,不论自己将来飞的多高、飞的多远,都永远不会忘记尚学堂的培训和教诲。在今后的工作中我将瞄准新技术的前沿方向,突出自己所学专长的优势,以“人一之,我十之”的雄心壮志。老老实实的在IT技术领域勤学苦练,力争有所成就,不辜负尚学堂的老师们、同学们对自己的期望和厚爱。 最后真心的说一句,谢谢尚学堂的老师们,谢谢。 欢迎大家加入Java交流群231158925,在这每天都会有尚学堂老师的免费课程和大家分享!
1
下一页