调查:学习java的难点和重点在哪里?学习J2EE的难点和重点在哪里?
只是希望一边讨论一边学习!举例子:
public class Plus
{
public static void main(String[] args)
{
int c=1;
int a;
c=c++;
a=c;
System.out.println("c = "+c+" a="+a);
}
}
这段程序输出什么?为什么?进行深入分析应该算一个小小的难点了吧!再如:
J2EE的EJB配置是不是也算是难点呢?
面对这些难点,除了不断的学习,是否还需要总结呢?
只是希望一边讨论一边学习!举例子:
public class Plus
{
public static void main(String[] args)
{
int c=1;
int a;
c=c++;
a=c;
System.out.println("c = "+c+" a="+a);
}
}
这段程序输出什么?为什么?进行深入分析应该算一个小小的难点了吧!再如:
J2EE的EJB配置是不是也算是难点呢?
面对这些难点,除了不断的学习,是否还需要总结呢?
J2EE的EJB配置是不是也算是难点呢?
//ejb许多公司几乎不用的,呵呵 不用学习,只要你学会了 struts hibernate spring就行 了 面对这些难点,除了不断的学习,是否还需要总结呢?
//当然需要总结,学习任何只是都要总结的
很简单
难得就是OOP,也就是面向对象编程
在去了解J2EE的框架。
自己也是很差,希望高手讲述下自己的观点!
2、Java的难点,关键是要理解OOD(面向对象设计),OOP(面向对象编程)的思想。
这个思想比较虚,怎么才能掌握这个思想呢?
是不是可以深入探讨交流一下,比如我们要应用面向对象设计原则:开闭原则、接口分离原则、依赖倒置原则等等,是否可以具体谈谈。
3、设计模式很重要。
为什么设计模式很重要呢?
我觉得设计模式只是让我们更好的理解面向对象的博大精深,不要停留在设计模式,通过现有的设计模式学习,要学会更大更好更符合应用要求的设计模式。
4、java的难点和重点就是它的应用。怎么应用又回到了2和3。
其实在应用中,一个问题有很多个解决办法,关键是哪一个是最合理的,这个选择也许就是思想吧。以上加了个人见解,如有不对,请批评指正!
希望大家互相学习
对J2EE的重点难点,我不知道大家是怎么理解的?
那么多框架的选择就感觉够难的,还有框架会不会限制我们的思想呢?
struts hibernate spring这些学了是不是就够用了呢,如何更好的学习这些框架,可有高人介绍下。
大部分人只知道:
Struts是MVC框架,是MVC的一种实现,它将Servlet和JSP标记用作实现的一部分。
Hibernate是一个对象关系映射框架,使用对象编程思维来操纵数据库,跟Sql拜拜。
Spring是使用基本的JavaBean来完成以前只可能由EJB完成的事情。
大家可以交流一下学习这些框架的经验!另:EJB真的很多公司都不用吗,我觉得用的公司也有很多吧。
不管公司用不用,探讨学习EJB,应该是对我们的又一次提高吧!
就一个类而言,应该仅有一个引起它变化的原因。
职责即为"变化的原因".
(2)OCP 开放封闭原则
软件实体(类、模块、函数等)应该是可以扩展的,但是不可修改。
对于扩展是开放的,对于更改是封闭的.
关键是抽象.将一个功能的通用部分和实现细节部分清晰的分离开来.
开发人员应该仅仅对程序中呈现出频繁变化的那些部分作出抽象.拒绝不成熟的抽象和抽象本身一样重要.
(3)LSP Liskov替换原则
子类型必须能替换掉他们的基本类型
(4)DIP 依赖倒置原则
抽象不应该依赖于细节。细节应该依赖于抽象。
Hollywood原则: "Don't call us, we'll call you".程序中所有的依赖关系都应该终止于抽象类和接口。针对接口而非实现编程。
任何变量都不应该持有一个指向具体类的指针或引用。
任何类都不应该从具体类派生。
任何方法都不应该覆写他的任何基类中的已经实现了的方法。
(5)ISP 接口隔离原则
不应该强迫客户依赖于他们不用的方法。接口属于客户,不属于他所在的类层次结构。
多个面向特定用户的接口胜于一个通用接口。
(6)REP 重用发布等价原则
重用的粒度就是发布的粒度.
(7)CCP 共同重用原则
一个包中的所有类应该是共同重用的。如果重用了包中的一个类,那么就要重用包中的所有类。
相互之间没有紧密联系的类不应该在同一个包中。
(8)CRP 共同封闭原则
包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包影响,则将对包中的所有类产生影响,而对其他的包不造成任何影响.
(9)ADP 无依赖原则
在包的依赖关系中不允许存在环.
细节不应该被依赖.
(10)SDP 稳定依赖原则
朝着稳定的方向进行依赖.
应该把封装系统高层设计的软件(比如抽象类)放进稳定的包中,不稳定的包中应该只包含那些很可能会改变的软件(比如具体类)。
(11)SAP 稳定抽象原则
包的抽象程度应该和其他稳定程度一致.
一个稳定的包应该也是抽象的,一个不稳定的包应该是抽象的.
(12)DAP(Default Abstraction Principle)缺省抽象原则
在接口和实现接口的类之间引入一个抽象类,这个类实现了接口的大部分操作.
(13)IDP(Interface Design Principle)接口设计原则
规划一个接口而不是实现一个接口。
(14)BBP(Black Box Principle)黑盒原则
多用类的聚合,少用类的继承。
(15)DCSP(Don't Concrete Supperclass Principle)不要构造具体的超类原则
避免维护具体的超类。
面向对象的思想(更具体一点,向上、向下转型,多态等的熟练应用,熟练使用接口、抽象类、继承等技术来实现面向对象的设计)
当然基础类库的学习也是很必要的然后再学一点jvm的东西,j2ee的东西
关键要用,而不仅仅是学
{
public static void main(String[] args)
{
int c=1;
int a;
c=c++;
a=c;
System.out.println("c = "+c+" a="+a);
}
}为什么不是c=2 a=2 呢?是因为是因为c=c++;在作怪,c++ 执行完到下一个语句才等于2,可以用等价语句理解:c=c++;
等价于int temp=0;
temp=c++;
//执行完上一句之后temp=1,c=2;
c=temp;
//执行完上一句之后c=1;所以所以输出结果是 c=1 a=1
抽象类和接口
为什么JAVA的API把String,Math等类和方法定义为final和static?
接口的好处有哪些?
思考类似这样的问题,会有助于提高你的JAVA学习能力。
{
public static void main(String[] args)
{
int c=1;
int a;
c=c++;
a=c;
System.out.println("c = "+c+" a="+a);
}
}=========================================这种东西只会出现在考卷和习题里。
自己写的话,肯定不会写这种的,起码可读性不好。
int c = 1;
c = c++; // 【c++】为1,其中c为2;有因为c++ 赋值给c 所以 c=1.a = c = 1;
基础是重点也是难点。J2EE项目开发使用框架的居多!
Java的基础是重点,应用好面向对象设计是难点。
面向对象思想是复杂的,无处不在的
设计模式也不是一成不变的,关键在融会贯通。J2EE的轻量级框架太多,选择适合自己研究下去。
EJB3.0在以后的应用应该会多起来吧!
c++=1 把c++赋值给c 所以c=1 把c赋值给a 所以a=1
the thought of oop is very important !
it's the foundation.
假设:
int i = 1;
i = i++;
这里要注意到是i++的执行过程.
i++的过程相当:
temp=i; i=temp+1; return temp;
也就像上面所说的此时(i++)这个表达式的值是1暂时用temp来代替(i++),i的值是2.
然后执行i = temp;
所以i的值是1.
EJB应该算是一个难点 因为2.0之前它很复杂
在国内的市场好像也不是很好。
无论做什么基础都是很重要的,要不然虽然能写一些东西,
但不免有的时候细节上会出现问题。
学习是个慢慢积累的过程。
j2ee没有什么重点和难点,这又不是考试,还需要勾重点,既然你选择了java,那java就是你吃饭的家伙。
就好比你手里拽着把瑞士军刀,你希望这把刀分出重点来么?还说你希望他功能越多越好?
java就是你的基础工具,你应该力求精通,虽然这很不易,但是最好不要抱着有什么重点难点的心态。
项目上碰到的问题千奇百怪,你要是连你的基础工具都没掌握全的话,你怎么能很好的完成你的工作呢?再就是框架,我不知道你见过盖房子没有?现在盖房子通常都会搭个框架,然后在这个框架上完成剩余的部分,
盖房中的框架和java的各种框架是一样的左右。框架就是来约束你,你的项目应该朝着什么样的结构,什么样
的目标去实现。学框架不难,只用学会调用各种接口和配置就好了。学好框架却比较难,基础太差是理解不了
的,每个框架都包含了很多设计模式和实现思想在里面。lz并非张无忌,劝lz循序渐进,戒骄戒躁,孜孜不倦,勇攀高峰,终能修成正果。
每个基础搞透彻,不要小看最简单的东西,最简单的东西也是最难理解的。多做练习,做完多总结。
永远不要觉得你在公司的项目中学不到什么,学习是主动的,不是等人来教,你要是觉得公司的项目烂,你可以
试着想想,到底哪里烂?为什么烂,然后试着去改善。要是你来设计这个项目你会怎么做?将思考变为习惯。
不要总是觉得时间不够,时间就像内存空间,只要你申请,总还是有的(想我刚入行的时候,每天只睡4个小时,
坚持了1年,比考研还tmd累,不过直接收获就是,你比别人得到的更多,不管是物质上,还是思想上。这就好比
打网游练级,冲级快的就是老大,就是带小弟,否则你就是别人的小弟,一辈子出不了头,这也应了中国的老话:
吃的苦中苦,方为人上人)。
再去看三大特性
再去看jvm——特别是对内存的分析!!!
我觉得能够熟练的进行内存分析,那么问题肯定不大了关于框架,我觉得都是因为我们j2se基础不扎实,所以学到的都是表面的浅显的方法调用,有心人肯定会发现一个现象:高级框架的技术在j2se中都能找到技术原型!
j2se没有个3遍5遍的系统学习,在你学习j2ee的时候你会觉得很累的!j2ee看完源码就没什么了(当然了,很多源码里作者的设计思想非常经典,每每发现妙处时,崇拜不已)
每个基础搞透彻,不要小看最简单的东西,最简单的东西也是最难理解的。多做练习,做完多总结。
永远不要觉得你在公司的项目中学不到什么,学习是主动的,不是等人来教,你要是觉得公司的项目烂,你可以
试着想想,到底哪里烂?为什么烂,然后试着去改善。要是你来设计这个项目你会怎么做?将思考变为习惯。
不要总是觉得时间不够,时间就像内存空间,只要你申请,总还是有的(想我刚入行的时候,每天只睡4个小时,
坚持了1年,比考研还tmd累,不过直接收获就是,你比别人得到的更多,不管是物质上,还是思想上。这就好比
打网游练级,冲级快的就是老大,就是带小弟,否则你就是别人的小弟,一辈子出不了头,这也应了中国的老话:
吃的苦中苦,方为人上人)。
顶下;
java本身:语法不算太难
j2ee核心:jsp、servlet、tag简直堪称简单
但是要深入掌握它们都不是容易事
清楚程序运行的各个时间段的内存情况.
面向对象的思维,
J2EE
各个框架都能使用.
就是太复杂 javaee越来越庞大
不太易用
只有扎实的j2se基础才是硬道理,
基础好了,什么框架组件上手都很快
最主要还是要多动手,多思考
高手接着说~~
重点是怎么让老板相信给你加薪是正确的选择