java SE学习初步整理

一、基础知识点:
1.JDK?JRE?
JDK :java开发工具包
     JRE + 类库
JRE:Java运行环境 + JVM(Java虚拟机)
     
2.java文件运行步骤?
先由javac编译为class文件,再由java执行

3.数据类型分类?
void
基本数据类型
整数
字节byte :-128  到 127  1字节 
短整型short 2字节
整型int 4
长整型long 8
浮点型
单精度float
多精度double
字符型
char
布尔型
boolean
引用数据类型
字符串String
数组Arrays[]
类class
接口interface
枚举
注解


4.byte,short的范围
byte :-128 ~ 127
short :-32768 ~ 32767


5.变量?常量?
变量:一个存储空间,空间中的值可变
常量:final,值不可变


6.&&和||的特点?
逻辑运算符 && ||:具备短路特点,效率高;&&与  一false为false,||或  一 true 为 true  


7.运算符优先级?
()
!  ++ --
算术
    * / %
    +  -
关系
   > >=  <  <=
   == !=
逻辑
   &&
   ||
条件
  ?:
赋值
   =  +=


9.break和continue的区别?
跳转语句:改变程序的流程;
break;
用于 switch ,循环   作用:结束循环;
continue; 用于循环;  作用:结束本次循环进行下一次循环。


10.一维数组边声明边初始化的两种方式?
int [] n = {3,5,5};
int [] n1 = new int[]{5,6,7};


11.类和对象区别?
类:
  相似对象的集合。
  抽象的概念。
  规定了 对象共同的属性 和方法;
  是一种数据类型。
  是一个模板,根据类的模板创建出具体的对象。
对象:
   实体,可以被描述的具有确定边界的事物。
   是具体的,真是存在的。


12.封装?作用?
概念:
隐藏类中的属性和实现细节,
对外只提供公共的访问方式。
作用:
  1.隐藏类的实现细节,安全性;
  2.对外只能通过提供的方式访问;
  3.访问器方法中可以使用条件语句。
  
13.重载和重写区别?
方法重载overload:
同一个类中, 
方法名相同,
参数列表不同(类型个数顺序),
与返回值无关。
作用:
 对于功能相同的方法,采取相同的名字方便记忆。
 
方法重写override(覆盖)
子类中,
方法名、参数、返回值与父类完全相同
访问修饰符不能比父类更严格,
异常范围不能比父类更大。

14.抽象类和接口区别?
相同点:
  1.都不能创建对象;
  2.都需要用 子类 或实现类 创建对象使用;
  3.都可以定义 抽象方法;
  4.普通的子类 或实现类 必须
     实现 抽象父类 或 接口中的
     所有抽象方法(抽象子类和实现类除外)。
不同点:
  1.定义 的 成员不同;
  2.类 是 单一继承;
    接口可以多继承;
  3.子类 只能继承一个抽象父类;
    实现类 可以实现多个 接口的功能;

15.访问修饰符的可见性?
访问修饰符:
         本类     同包     子类     不同包
private   是
默认      是       是
protected 是       是      是
(保护)
public    是       是      是        是 


16.final的作用?
终态
修饰类:此类不能被继承;
    例如:String
修饰方法:此方法不能被重写;
修饰变量:是常量,值不能被更改。

17.什么是多态?实现多态的两个特征?
定义:一种物质的多种形态
同一种引用类型,使用不同的实例(对象)执行不同的操作。

实现多态的两个条件:
 1.方法重写;
 2.父类引用->子类对象
   接口引用->实现类对象
 子类中特有的功能不能被实现

18.向上转型?向下转型?
  1.向上类型转换
   子类->转 父类类型
  2.向下类型转换
   父类-> 子类
   强制转;
   子类 对象= (子类)父类对象;

19.成员变量和局部变量区别?作用域、初始值、同名
1.成员变量作用域范围  整个类中有效;
  局部变量 带定义它的 代码块中有效 
2.成员变量 系统自动赋值
  局部变量 必须自己赋值,系统不赋值。
3.成员变量  和 局部变量 同名,
  优先 使用 局部变量。

20.成员变量和静态变量区别?
1.静态变量 属于 类,又叫类变量;
  实例变量 属于 对象。
2.静态变量存在 方法区中 ,被所有对象共享;
  实例变量存在 堆中。
3.静态变量随着类的加载而加载,类消失而释放;
  实例变量随着对象消失而释放。
4.静态变量优先于对象而存在。

21.成员方法和静态方法区别?
1.静态方法 中 只能直接使用静态成员;
  实例方法中都可以使用;
2.静态方法中 不能使用 this,super
  实例方法可以使用。

22.异常和错误区别?
 Error   :错误。不能处理
 Exception:异常。可以处理。
            分类:运行时异常:可以不处理。
                        RuntimeException类及其子类。
                  非运行时异常(编译): 必须处理。

23.try,catch,finally的作用?
try{
   容易出现异常的代码;
 }catch(异常类型 对象){
   捕获并处理异常;
 }finally{
   一定会执行的代码;
 }

注意:
  finally块唯一一种不执行的情况。
  System.exit(0);//执行到退出 JVM

24.throw,throws的作用
throws声明异常
把异常抛给调用者

调用者处理方式:
   1.try-cath
   2.throws 不建议使用
注意:
  throws 运行时异常(RuntimeException类及其子类)   
  可以不用处理。
  
throw抛异常 
 自己抛异常 
 throw new 异常类型("异常字符串描述信息");
注意:
  运行时异常(RuntimeException类及其子类)

  可以不用throws 声明。


二、经典算法:
1.变量互换?
int a = 1;
int b = 2;
int temp;
temp = a;
a = b;
b = temp;


2.累加?
int sum = 0;
for(int i = 1, i <= 50, i++){
sum += i;
}


3.累乘?
int sum = 0;
int sum2 = 0;
for(int i = 1, i <= 50, i++){
sum *= i;//累乘
sum2 += sum;//阶乘
}


4.最大值最小值?
//求最大值:
int b[] = new int[]{22, 44, 11, 55, 33};
int max = b[0];
//方法1:
for (int i : b) {
if (max < i) {
max = i;
}
}
//方法2:
for (int i = 1; i < b.length; i++) {
if (max < b[i]) {
max = b[i];
}
}
System.out.println(max);


5.冒泡排序?每轮每次比较相邻的两个数,小的数换到前面,每轮结束后最大的在最后面(比较n个数,比较n-1轮,每轮比较次数由n-1依次减一递减到1)
int []n = {29, 4, 66, 33, 9, 21};
int temp;
for (int i = 0; i < n.length - 1; i++) {//控制轮数
for (int j = 0; j < n.length - 1 -i; j++) {//比较次数
if (n[j] > n[j + 1]) {//控制由大到小还是由小到大
temp = n[j];
n[j] = n[j + 1];
n[j + 1] = temp;
}
}
}
for (int i : n) {
System.out.println(i);
}


6.选择排序?确定一个位置,与之后的数进行比较,小的在确定的位置,大的互换
int []a = {33, 1, 53, 27, 30, 9};
for (int i = 0; i < a.length - 1; i++) {//确定位置
for (int j = i + 1; j < a.length; j++) {//比较元素
if (a[i] > a[j]) {//控制由大到小还是由小到大
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
for (int i : a) {
System.out.println(i);
}


7.单例模式?
//饿汉式:在类加载时就创建了,在多线程中比较安全
class Window{
private static Window win = new Window();
private Window(){

}
public static Window getInstance(){
return win;
}
}
//懒汉式:使用时才创建,多线程时不安全
class Windows{
private static Windows wins = null;
private Windows(){

}
public static Windows getWindows(){
if (wins == null) {
wins = new Windows();
}
return wins;
}
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java SE实践教程 源代码 2010-9-13 声明:在网上找了好久才找到这个源码,真不容易啊,请大家多多支持。 2010-9-13 内容简介:此书结合具体实例讲解,通俗易懂,又不乏深度。我觉得这本书写的确实不错,堪称经典,市面上这样的书实在太少了,所以在这里发布下,供大家共享。本书从编程技术、项目实践以及软件工程的角度出发,如果大家想学习基础语法部分,建立去下载别的书籍。当然这本书也讲解了语法,是从实战的角度讲解的。 目录回到顶部↑第1章 进驻爪哇岛——JAVA的基本语法. 1 1.1 讲解 2 1.1.1 爪哇岛的历史与演变 2 1.1.2 爪哇岛基本生存规则 4 1.1.3 爪哇岛上新人新风尚 11 1.2 练习 15 1.2.1 搭建Java开发环境 15 1.2.2 体验Java程序开发 21 1.2.3 J2SE 5.0新特性实践 26 1.3 小结 35 第2章 对象无处不在——面向对象的基本概念 37 2.1 讲解 38 2.1.1 什么是面向对象 38 2.1.2 面向对象的基本概念 38 2.1.3 Java对面向对象的支持 41 2.2 练习 42 2.2.1 JavaBeans技术开发可重用组件 42 2.2.2 面向对象的基础实践 44 2.3 小结 51 第3章 当一个变成多个——集合框架的基本概念 53 .3.1 讲解 54 3.1.1 集合概述 54 3.1.2 Collection接口 54 3.1.3 泛型(Generics) 56 3.1.4 Map接口 57 3.2 练习 59 3.2.1 创建课程管理系统 59 3.3 小结 68 第4章 数据传送的管道——JAVA I/O 71 4.1 讲解 72 4.1.1 流——Java I/O的基础 72 4.1.2 Java I/O库 72 4.2 练习 74 4.2.1 数据传送的通道 74 4.2.2 管道的一端 76 4.2.3 文件处理 78 4.2.4 基于对象的读写 80 4.2.5 NIO 85 4.3 小结 89 第5章 如何走得更稳——测试驱动的基本概念 91 5.1 讲解 92 5.1.1 什么是JUnit 92 5.1.2 使用JUnit的一般过程 92 5.1.3 安装JUnit 93 5.2 编写单元测试 93 5.2.1 第1个单元测试 93 5.3 编写单元测试的步骤 95 5.3.1 常用断言 95 5.3.2 TestSuite 96 5.3.3 JUnit框架组成 96 5.4 练习 97 5.4.1 创建JUnit单元测试 97 5.4.2 setUp和tearDown 102 5.4.3 使用TestSuite 103 5.5 补充:JUNIT 4的新增特性 104 5.5.1 测试方法 104 5.5.2 初始化方法 105 5.5.3 TestSuite初始化 106 5.5.4 兼容性 106 5.6 小结 107 第6章 三头六臂——线程和同步的基本概念 109 6.1 讲解 110 6.1.1 什么是线程 110 6.1.2 创建线程 110 6.1.3 线程的生命周期 112 6.1.4 线程的优先级 114 6.1.5 中断线程 115 6.1.6 线程组 116 6.1.7 处理未被捕获的异常 117 6.1.8 守护线程 117 6.2 同步与锁 118 6.2.1 synchronized和同步 118 6.2.2 锁对象 120 6.2.3 Condition对象 121 6.2.4 再谈synchronized 122 6.3 协调任务 124 6.3.1 线程池和Executor 124 6.3.2 Callable和Future 126 6.3.3 ScheduledExecutorService 127 6.4 线程安全的集合和同步器 128 6.4.1 阻塞队列 128 6.4.2 指定阻塞时间 130 6.4.3 同步器 131 6.4.4 Atomic类型 134 6.5 练习 134 6.5.1 线程间同步 134 6.5.2 生产者、消费者问题.. 137 6.6 小结 140 第7章 我要彩色照片——SWING的基本概念 141 7.1 讲解 142 7.1.1 Swing的基本概念 142 7.1.2 Swing组件继承关系 142 7.1.3 Swing组件一览 143 7.1.4 Swing和MVC设计模式 144 7.1.5 Swing的单线程模型 145 7.2 练习 148 7.2.1 第1个Swing程序 148 7.2.2 外观感觉 150 7.2.3 事件侦听器 151 7.2.4 Swing基本控件和窗口 155 7.2.5 Swing容器 176 7.2.6 Swing高级控件 181 7.3 小结 187 第8章 朋友们,你们在哪里——JAVA数据库运用 189 8.1 讲解 190 8.1.1 数据库的基本概念 190 8.1.2 了解Java DB 190 8.1.3 JDBC 与 JDBC 4.0 191 8.1.4 用Java让数据库动起来 192 8.1.5 事务处理简介 194 8.2 练习 195 8.2.1 数据库操作 195 8.2.2 我的联系手册 199 8.2.3 事务处理 221 8.3 小结 222 第9章 还想再见到你——数据持久化 223 9.1 讲解 224 9.1.1 数据持久化的基本概念 224 9.1.2 数据持久化技术简介 224 9.1.3 Java中的对象关系映射 225 9.1.4 对象XML序列化 227 9.2 练习 228 9.2.1 我的联系手册(JPA实现) 228 9.2.2 我的联系手册(JAXB实现) 238 9.3 小结 242 第10章 准备环球旅行——应用程序国际化 243 10.1 讲解 244 10.1.1 概念介绍 244 10.1.2 设置Locale 249 10.1.3 隔离语言环境相关数据 252 10.1.4 格式化 258 10.2 练习 266 10.2.1 对单独的文件进行国际化 266 10.2.2 在设计时国际化GUI表单 273 10.2.3 国际化整个项目 277 10.3 小结 281 第11章 请保持联系——JAVA网络连接 283 11.1 讲解 284 11.1.1 Java网络连接的基本概念 284 11.1.2 使用TCP协议的Socket网络编程 285 11.1.3 使用UDP协议的Socket 网络编程 289 11.1.4 多点传送和MulticastSocket类 290 11.1.5 NIO及相关技术 290 11.2 练习 291 11.2.1 ServerSocket与Socket示例: 开发一个Server-Client模型的程序 291 11.2.2 多点传送示例 293 11.2.3 打造你自己的QQ 295 11.3 小结 315 第12章 找个好管家——JMX 317 12.1 讲解 318 12.1.1 什么是 JMX 318 12.1.2 JMX基本概念 318 12.1.3 JMX管理应用开发 323 12.2 练习 325 12.2.1 建立JMX开发环境 325 12.2.2 创建拼词游戏程序 326 12.2.3 分布式管理扇形绘制Applet 程序 330 12.3 小结 350 第13章 让我们更专业——软件工程的基本概念 351 13.1 讲解 352 13.1.1 软件工程的基本概念 352 13.1.2 版本控制系统 356 13.1.3 统一建模语言 359 13.2 练习 360 13.2.1 建立CVS的使用环境和基本操作 360 13.2.2 使用标记和分支 373 13.3 使用UML建模 376 13.3.1 对基本结构建模 376 13.3.2 对高级结构建模 381 13.4 小结 387 索引... 389
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值