Java基础入门第2版 黑马程序员/编著

Java基础入门第2版 黑马程序员/编著
2014年5月第1版
2018年12月第2版

备注:
2008年定下的技术发展规划:
1.java、汇编暂时不学
2.基础设施建设,也就是代码仓库(data.mdb)的积累:c/c++/vb/Delphi/C#/ASP.NET/vb.net/JavaScript/JSP/PHP/MFC/STL/Socket/Winsock/ODBC API/ADO/DirectX/其他DLL/COM/OCX/vb/vb.net(gui/cui)/vc(sdk/mfc/stl/atl/托管c++)/delphi/c#(gui/cui)
2009-2010技术发展规划调整:
重视c++ DirectX端游技术,这一块投入了很大精力,但目前工作履历中缺乏2d、3d引擎开发经验。
2012-2013年的技术发展规划调整:
淡化微软的技术,除非工作中确实需要;强调开源复用、强调轻型可裁剪复用
2013年
重视MFC编程技术,原因是工作中用到了。
2014年的技术发展规划调整:
掌握java和Android手游开发技术
2013-2014年
Cocos2d-x 2.x
2015年
Unity/Java/c#/.NET/Mono2.0
副业:ASP.NET/PHP/汇编
非主流:Delphi/vb.net/JavaScript/JSP
2025年的技术发展规划调整:
掌握java和ERP

chap1 Java开发入门

1.2 JDK的使用
1996年,Sun公司发布JDK 1.0。
2009年4月20日,Sun公司被Oracle公司收购。
由于JDK 9是2017年9月发布的版本,由于JDK 10是2018年3月发布的版本,这两个版本目前并不稳定,且市场使用率低,所以本教材将针对目前稳定的JDK 8(也称之为Java 8或JDK 1.8)进行讲解。

1.4 第一个Java程序
在命令行窗口使用javac命令对带有中文的Java源文件进行编译时,必须保证源文件的编码格式和命令行窗口解码格式一致,否则会出现源文件编译错误。

1.6 Eclipse开发工具。本教材使用的Eclipse版本是Neon.3 Release(4.6.3)。

一种Java常用的开发工具---Eclipse:支持Java和Android开发的开源集成开发工具。
JDK:JDK是Java开发工具。
ADT:ADT是Android开发的Eclipse插件。
CDT:CDT是C++开发的Eclipse插件。
Android SDK:Android开发工具,包括模拟器等。
Android NDK:Android原生态本地开发包,辅助SDK进行编译开发,支持C/C++。
Cygwin:在Windows平台上运行的UNIX模拟环境,是Cygnus Solutions公司开发的自由软件。

Eclipse版本定义差异http://www.docin.com/p-672488389.html#documentinfo
2001年11月7日,Eclipse 1.0发布
2002年6月27日,Eclipse 2.0发布
Eclipse 2.0.1
Eclipse 2.0.2
2003年3月27日,Eclipse 2.1发布
Eclipse 2.1.1
Eclipse 2.1.2
Eclipse 2.1.3
2004年6月25日,Eclipse 3.0发布
Eclipse 3.0.1
Eclipse 3.0.2
2005年6月27日,Eclipse 3.1发布
从这个版本开始形成了一个以木星卫星名称相关的系列。
1610年,伽利略通过对木卫1-木卫4的观察,提出了反驳地心说的证据。
木卫1:IO,伊奥
木卫2:Europa,欧罗巴
木卫3:Ganymede,盖尼米德
木卫4:Callisto,卡里斯托
Eclipse从3.1到3.4的命名并非按照木卫1-4的顺序,而是根据这4颗卫星距离木星从近到远的距离,因此
所有木卫中第1近的木卫1——Eclipse 3.1版本代号IO,伊奥
所有木卫中第4近的木卫4——Eclipse 3.2版本代号Callisto,卡里斯托
所有木卫中第6近的木卫2——Eclipse 3.3版本代号Eruopa,欧罗巴
所有木卫中最远的木卫3——Eclipse 3.4版本代号Ganymede,盖尼米德
Eclipse 3.5版本代号Galileo,伽利略
2010年6月,Eclipse 3.6版本代号Helios,太阳神 
Eclipse 3.7版本代号Indigo,靛青
Eclipse 4.2版本代号Juno

Eclipse版本号:
Eclipse Platform
Version: 4.2.1.v20130118-173121-9MF7GHYdG0B5kx4E_SkfZV-1mNjVATf67ZAb7
Build id: M20130204-1200
View Code

 

Eclipse1.0 2001年11月
Eclipse项目分成3个子项目:
平台Platform
开发工具箱Java Development Toolkit
外挂开发环境Plug-in Development Enviroment
这些子项目又细分成更多子项目。
例如
Platform子项目包含数个组件,如Compare,Help,Search
JDT子项目包含3个组件:UI,Core,Debug
PDE子项目包含2个组件:UI与Core
Eclipse基本上有4种build版本可供下载
发行版,定位跟上市的商业软件一样
稳定版,比发行版新一级的版本,新版本通常会在此过渡版本出现,定位跟商业软件的beta版一样
整合版,各个独立的组件具稳定度,有可能晋级为稳定版
当日最新版,可能有严重的bug
跨语言、跨平台
当下载Eclipse之后,除了有Java IDE(就是JDT),还有PDE。
JDT实际上是Eclipse的外挂程序[插件]
Eclipse本身实际上时指Eclipse平台
CDT可以开发C/C++程序
架构
Eclipse平台由数种组件组成:
平台核心platform kernel
工作台workbench【工作台主要由标题栏、菜单栏、工具栏、透视图四部分组成】:SWT和JFace
工作区workspace【工作空间用于保存Eclipse中创建的项目和相关设置】
团队组件tram component
说明组件help
平台核心的任务是让每样东西动起来,并加载所需之外挂程序。当启动Eclipse时,先执行的就是这个组件,再由这个组件加载其他外挂程序。
工作区负责管理使用者的资源,这些资源会被组织成一个(或多个)项目,摆在最上层。
工作台可以说是Eclipse的图形操作接口,它是用Eclipse自己的标准图形工具箱SWT和JFace的架构。
工作台会有许多不同种类的内部窗口,称之为视图,以及一个特别的窗口-编辑器。

包的定义与使用
Java语言中的常用包
java.util:包含Java中大量工具类、集合类等,例如Arrays、List、Set等。
java.net:包含Java网络编程相关的类和接口。
java.io:包含Java输入、输出相关的类和接口。
java.awt:包含用于构建GUI的相关的类和接口。

/*
javac VectorDemo2.java
java VectorDemo2

φ(2)=1,模2的既约剩余类:
1
φ(4)=2,模4的既约剩余类:
1
3
φ(8)=4,模8的既约剩余类:
1
3
5
7
φ(16)=8,模16的既约剩余类:
1
3
5
7
9
11
13
15
*/


import java.util.*;

public class VectorDemo2
{

// 求2个数的最大公约数
public static int GCD(int a, int b) 
{ 
 if(a*b<0)
  return -GCD(Math.abs(a),Math.abs(b));
 int temp=0;
 if(a<b)
 {
  temp=a;
  a=b;
  b=temp;
 }
 if(a%b==0)
  return b;
 else
  return GCD(a%b,b);
}

public static int Iscoprime(int a, int b)
{
 int ret=0;
 if(GCD(a,b)==1)
  ret=1;
 return ret;
}

public static Vector totientEx(int num)
{
        Vector v = new Vector();
 if(num==1)
        {
    v.add(1); 
           return v;
        }
 for(int i=1;i<=num-1;i++)
 {
    if(Iscoprime(num,i)==1)
           {
              v.add(i);  
           }
 }
 return v;
}
 
public static void main(String[] args)
{
int Arr[]={2,4,8,16};
for(int i=0;i<4;i++)
{
int n=Arr[i];
Vector v = totientEx(n);
int size = v.size();
System.out.printf("φ(%d)=%d,模%d的既约剩余类:\n",n,size,n);
//遍历Vector中的元素
for(int j = 0;j < v.size();j++)
{ 
System.out.println(v.get(j));
}
}
}

}
View Code

 

1.8习题
判断题
JRE中包含了Java基础类库、JVM和开发工具。(错。JDK包含JRE和开发工具)
简答题
简述JRE和JDK的区别。

选择题
如果jdk的安装路径为d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项?(d:\jdk\bin)

chap2 Java编程基础

8种基本数据类型【数值型(整数类型(byte,short,int,long)、浮点类型(float,double))、布尔型(boolean)、字符型(char)】是Java语言内嵌的。
引用数据类型【类、接口、数组、枚举、注解】是由编程人员自己定义的数据类型。

填空题
Java中变量可分为两种基本类型,分别是基本数据类型和引用数据类型。
判断题
Java语言不区分大小写。(错误)

chap4 面向对象(下)
面向对象三大特性:封装、继承(Inheritance)、多态(Polymorphism)
通过对象、类,我们实现了封装,通过子类我们可以实现继承。
类的多态是指一个方法具有多种功能,或者相同的接口有多种实现方法【多态是指不同类的对象在调用同一个方法时所呈现出的多种不同行为】。
Java编程通过方法重载(Overloading)、覆盖(Overriding)和接口(Interface)来实现多态性。

简答题
简述什么是方法重写
简述什么是多态
简述抽象类和接口的区别

chap10 多线程
填空题
Java中实现多线程有三种方式:
1.Thread类实现多线程
扩展java.lang.Thread类,用它覆盖Thread类的run()方法。
2.Runnable接口实现多线程
生成实现java.lang.Runnable接口的类并将其他的实例与java.lang.Thread实例相关联。
2.Callable接口实现多线程

posted on 2025-07-02 08:41  梦回第四帝国  阅读(16)  评论(0)    收藏  举报

导航