1:java发展史
JAVA的语言设计始于1991年,SUN公司最开始想在消费类电子产品方面寻求市场,
成立了由James Gosling领导的Green开发小组首要目标是编写可内嵌于家用小型电器设备内部的软件 ,使得机器变得更加的人工智能。开始的时候Green小组是用C++编写的,后来发现C++并不适合这类任务。为什么呢?因为C++编写的程序常常会有使系统失效的程序错误,由其是内存管理和指针操作,常产生很多bug,大家设想 一下啊,比如说一台烤面包机上的程序有错误,可能会使面包机烧毁,甚至 更严重会产生爆炸。所以后期呢,为了解决这个问题,Green小组 决定自己开发一种新的语言,该语言的设计目标是具有平台 的独立 性、高度的可靠性和安全性。因为那个时候C以及C++已经得到了广泛的应用,所以他们决定 以C++为基础来开发该语言。该语言最初被取名为Oak(橡树)。 Java的取名也有一些趣闻, 有一天, 几位Java成员组的 会员正在讨论给这个新的语言取什么名字, 当时他们正在咖啡馆喝着Java(爪哇)咖啡,有一 个人灵机一动说就叫Java怎样, 得到了其他人的赞赏, 于是更名为JAVA(咖啡),一会呢,我们安装JDK的时候大家能看见我们JDK的图标呢就是一杯咖啡。后期呢,在这个家电方面确实取得了一些成就,但是由于各种原因,还是没有推上市场。直到1994年,借着Internet和WWW的飞速发展,SUN公司呢,发现JAVA具有平台的独立性、高度的可靠和安全性非常适合在Internet的WWW上做应用开发。经过改造呢,终于JAVA在1995年5月23号正式宣布诞生了。
2:介绍几个jdk的重大版本
1.版本1.2(Playground运动场):
JDK1.2 Solaris Exact VM,附带JIT解释器,提升GC性能,精准内存管理(Accurate Memory Management),数据类型敏感。
2.版本1.5(Tiger老虎):
1).自动装箱与拆箱:
自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中。
自动拆箱的过程:每当需要一个值时,被装箱对象中的值就被自动地提取出来,没必要再去调用intValue()和doubleValue()方法。
自动装箱,只需将该值赋给一个类型包装器引用,java会自动创建一个对象。
自动拆箱,只需将该对象值赋给一个基本类型即可。
java——类的包装器
类型包装器有:Double,Float,Long,Integer,Short,Character和Boolean
2).枚举
把集合里的对象元素一个一个提取出来。枚举类型使代码更具可读性,理解清晰,易于维护。枚举类型是强类型的,从而保证了系统安全性。而以类的静态字段实现的类似替代模型,不具有枚举的简单性和类型安全性。
简单的用法:JavaEnum简单的用法一般用于代表一组常用常量,可用来代表一类相同类型的常量值。
复杂用法:Java为枚举类型提供了一些内置的方法,同事枚举常量还可以有自己的方法。可以很方便的遍历枚举对象。
3).静态导入
通过使用 import static,就可以不用指定 Constants 类名而直接使用静态成员,包括静态方法。
import xxxx 和 import static xxxx的区别是前者一般导入的是类文件如import java.util.Scanner;后者一般是导入静态的方法,import static java.lang.System.out。
4).可变参数(Varargs)
可变参数的简单语法格式为:
methodName([argumentList], dataType...argumentName);
5).内省(Introspector)
是 Java语言对Bean类属性、事件的一种缺省处理方法。例如类A中有属性name,那我们可以通过getName,setName来得到其值或者设置新 的值。通过getName/setName来访问name属性,这就是默认的规则。Java中提供了一套API用来访问某个属性的getter /setter方法,通过这些API可以使你不需要了解这个规则(但你最好还是要搞清楚),这些API存放于包java.beans中。
一 般的做法是通过类Introspector来获取某个对象的BeanInfo信息,然后通过BeanInfo来获取属性的描述器 (PropertyDescriptor),通过这个属性描述器就可以获取某个属性对应的getter/setter方法,然后我们就可以通过反射机制来 调用这些方法。
6).泛型(Generic)
C++ 通过模板技术可以指定集合的元素类型,而Java在1.5之前一直没有相对应的功能。一个集合可以放任何类型的对象,相应地从集合里面拿对象的时候我们也 不得不对他们进行强制得类型转换。猛虎引入了泛型,它允许指定集合里元素的类型,这样你可以得到强类型在编译时刻进行类型检查的好处。
7).For-Each循环
For-Each循环得加入简化了集合的遍历。假设我们要遍历一个集合对其中的元素进行一些处理。
3.版本1.7(Dolphin海豚):
1.switch中可以使用字串
2."<>“这个玩意儿的运用List tempList = new ArrayList<>(); 即泛型实例化类型自动推断
3.自定义自动关闭类
4.新增一些取环境信息的工具方法
5.Boolean类型反转,空指针安全,参与位运算
6.两个char间的equals
7.安全的加减乘除
8.对Java集合(Collections)的增强支持
9.数值可加下划线
10.支持二进制文字
11.简化了可变参数方法的调用
12.在try catch异常扑捉中,一个catch可以写多个异常类型,用”|"隔开
4.版本1.8(Spider蜘蛛)
Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可。
新增lambda表达式
提供函数式接口
Java 8 允许你使用 :: 关键字来传递方法或者构造函数引用
我们可以直接在lambda表达式中访问外层的局部变量。 5.jak11:
1.本地变量类型推断
2.字符串加强
3.集合加强
4.Stream 加强
5.Optional 加强
6.InputStream 加强
7.HTTP Client API
8.化繁为简,一个命令编译运行源代码 2:jdk软件安装
2.1环境变量配置
1:我的电脑->单机右键->点击属性->点击高级配置 ->进入环境变量
2:找到path 为系统寻找路径地址
2.2测试是否安装成功
进入dos窗口,
方法1:win+r:输入cmd,回车
方法2:开始里面输入cmd,回车
出现黑色窗口分别输入1:javac 2:java 3.DOS窗口
1.进入dos: win+R:输入cmd
2.退出:exit
3.常用命令
dir 展示当前路径下的文件及文件夹(路径) dir
c: d: e: f: 切换盘符 c:
cd 相对路径 路径切换 cd test
cd 绝对路径 1.在当前盘符,直接切换路径 2.夸盘符,则需要2步骤,2中方式:
第一种方式:先盘符,后路径 d: cd d:/xxx/xxx
第二种方式:先路径,后盘符 cd d:/xxx/xx d:
cd ..上一级目录 cd .. cd../.. cd ../../../ cd .
Tab: 补全当前路径中存在文件名称
↑↓: 当前dos历史记录切换
cls :清屏 练习:用记事本编写helloworld
Public class HelloWorld{ public static void main(String[] args){ System.out.println("helloworld"); } }
第一步:新建记事本->名为helloworld->后缀为.java
第二步:打开记事本,编写代码(如上)并保存
第三步:win+r 打开dos窗口并找到该记事本的路径下-> 输入javac helloworld.java->回车等待
编译成功