`

javase_0_Java简介

 
阅读更多

 

 

1 平时工作中,同样工作8小时,高手效率和认识深度要比一般人高很多,

  原因: a) 学习习惯好  b) 基础好  c) 学习方法

 

 a) 学习习惯好:

官网,API文档是学习新东西的入门神器,同时百度(google在国内打不开了)是深入学习的最佳获取源

 

b) 基础好:

数据结构,编译原理,某一门语言的深入理解(可以触类旁通的快速学习别的语言和框架),

常用算法(http://www.kaikeba.com/)  还有E文

这些都是慢功夫,需要持续追加精力来学习,没有一蹴而就的事

 

 c)学习方法:

1 RSS收集器来订阅博客   2 InfoQ国内外同步最新技术    iteye c博客等技术论坛 

3 付费/免费视频  4 动手 写文章 在动手 在写文章总结

 

 

 

关于架构设计:

这个框架是什么东西
  有哪些特点
  适用于哪些业务场景
  框架之间的搭配
  脑子中有一套设计架构,不合适时知道去改哪里

 

2 学习语言,精通一门,eg: 精通Java内存模型,在看别的语言内存,基本是一样的,好比学会了捷达,切换到

爱丽舍,是不需要很大磨合的。

 

3 计算机语言发展史:


 



 

 

4 SUN和Java发展:

 

SUN: Stanford University Netword,

斯坦福大学和硅谷,Google,Facebook等有着千丝万缕的联系,

SUN公司也开发了Java这套语言(SUN后来被Oracle收购),最开始这套语言是作为SUN公司的一个Green项目

Green项目的应用环境:像电视盒子这样的消费电子产品,需要一套语言中立,跨平台使用,

JAVA 之父是 James Gosling

后来基于Java的后续发展,同时遇到了1998互联网爆发式发展(互联网的发展是指数级别, 传统行业发展是百分比一点点增长),互联下需要一个中立跨平台都能解释运行的一门语言,因此Java大卖。

由此可见, 成功是需要提前准备和机遇的。

 

5 Java各种爹:

 



 

6 java 版本体系:


 

7 JVM简介:

 



 
 8 Java注释和编译运行:

 

Java代码中的注释信息在编译时会被清理掉,编译后的字节码文件没有任何注释。

 

9 为何国际通用unicode字符集:

一个Unicode字符集占2个字节,

即 2的16次方= 256*256 = 65536,

英文24个字母,汉字2W多个汉字,这6W多的范围足够表示世界上所有的字符,因此使用占2个字节长度的

Unicode编码作为国际通用标准。

 

 

 

 

9 为何Java是强数据类型:

 

Java应用范围很广,从服务器到个人PC到手持设备,有的对内存要求宽泛有的则苛刻,

定义成强类型是为了便于开发人员在不同环境下做选择。

 

10 浮点数并不能精确的表示小数,是有舍入误差的,尽量避免比较中使用浮点数, 如果需要进行

不产生误差的精确数字计算,需要使用 BigDecimal,  而如果针对大数据整型做比较要用BigInteger

 

 

11  向上转型时, 指的是表述的范围的向上,而不是字节长度向上

 



 

13  生成Javadoc做法:

 

1 代码中需要用 /** 方式注释  2 使用参数@param @return等参数

2

工程右键/ 如下图,一路next即可生成 当前工程对应javadoc的html格式说明文档:

 

 

 

 

14 为何静态方法 不能使用非静态变量:

1 静态方法放在内存方法区
2 非静态变量(类变量)只有在new出来后 放在堆内存中
这两者不在同一区域中,够不到,因此访问不了

 

 

 

 15 面向对象编程的本质:
以类的方式组织代码,以对象方式封装数据。


面向对象和面向过程:
老蒋和老毛思维,  一个面向过程,后者面向对象,面向对象下,后期整合非常方便,
面向过程下,老蒋总是坐着飞机飞来飞去指导每一步骤

 

 

16 java 单继承:

单继承利于构建继承树, 分析类之间关系, 维护类之间关系。
国企和公务员就是多继承关系,领导有好几个
外企就是单继承关系。 比尔盖茨是没权利指挥不是自己直属手下人干活,比如扫地工,也没有权利开除 
部队也是单继承关系。

 

 

17 this, super参数:

this, super参数:
1 只会出现在非静态方法中
2 在非静态方法的形参中会默认含有次参数,隐形参数
public void study(this,super) { // 这个this指向 new出对象的内存地址, super也是隐形参数 被默认传递 
 this.name = name;
}

 

 

 

 

 

 

this使用案例2: 如何辨别调用方法是子类自己还是父类:

public class HttpServlet {

	public void service(){
		System.out.println("HttpServlet service()");
		 doGet();
	}
	
	public void doGet(){
		System.out.println("HttpServlet doGet()");
	}
}





public class MyServlet extends HttpServlet {


	
	public void doGet(){
		System.out.println("MyServlet doGet()");
	}
	
	public static void main(String[] args) {
		
		HttpServlet servlet = new MyServlet();
		/**
		 * 在调用时, 都会带隐含形参(this, super), 执行下面方法时,进入到父类方法
		 * public void service(this,super){
		System.out.println("HttpServlet service()");
		 doGet(); ----> this.doGet();
		 因为这里的this是new MyServlet() 因此最后调用方法为 MyServlet的doGet()
	}
		 */
		servlet.service();
		
	}
}

 

 

 



 18 三大特性:

继承: is a   has a 方式来区别于 组合
封装: public protected default private 实现访问权限的限制
多态: 相当于现实生活中的 说一套 做另一套,比如美国对于钓鱼岛问题,含糊,真正出事时该帮日本还是帮日本; 多态仅仅是方法多态

 

 

 

  • 大小: 55.9 KB
  • 大小: 2.8 KB
  • 大小: 6.2 KB
  • 大小: 124.6 KB
  • 大小: 73.6 KB
  • 大小: 107.8 KB
  • 大小: 89.9 KB
  • 大小: 44 KB
  • 大小: 34.4 KB
  • 大小: 109.1 KB
  • 大小: 58.9 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics