接口注意事项:

1.接口不能被实例化

2.接口中所有的方法都不能有主体  (不能有{ })

3.一个类可以实现多个接口

4.接口中可以有变量<但变量不能用private和protected修饰>

附加:

接口中的变量,本质上都是static的,而且是final,不管加不加static修饰

在java开发中,常把经常用的变量定义在接口中,作为全局变量使用。

<访问形式:接口名.变量名>

5.一个接口不能继承其他的类,但是可以继承别的接口

抽象类中可以有实现了的方法

接口中的方法一个都不能被实现

接口中定义变量有特殊要求

接口语法:

class  类名  implement  接口 {

方法;

变量;

}

小结:

接口是更加抽象的抽象的类

抽象类里的方法可以有方法体

接口里的所有方法都没有方法体

接口体现了程序设计的多态和高内聚低耦合的设计思想

package com.test4;
public class Test{ public static void main(String[] args){ }
}
interface Fish
{
public void swimming();
}
interface Bird
{
public void fly();
}
class Monkey
{
int name;
public void jump()
{
System.out.println("ABC");
}
}
class LittleMonkey extends Monkey implement Fish,Bird
{
public void swimming(){
}
public void fly(){
}
}

java的继承是单继承(一个类最多只能有一个父类)

final-概念

final可以修饰变量或方

使用final可以避免被子类修改:

class Aaa
{
//给方法用final修饰,表示不可以被修改,不可被覆盖
final public void sendMes()
{
System.out.println("发送消息");
}
}

final使用:

1.当不希望父类的某个方法被子类覆盖(override)时,使用final关键字修饰

2.当不希望类的某个变量的值被修改,可以用final修饰 <final public void xxx()>

如果一个变量是final,则必须赋初值,否则编译不了

3.当不希望类被继承时,可用final修饰 <final class xxx>

数组

一维数组

数组的必要性:

package com.test1;
public class Demo5_1{ public static void main(String[] args){
//定义六个变量
//定义一个可以存放六个float类型的数组
float arr[]=new float[6];
//使用for循环赋值
//给数组的各个元素赋值
arr[0]=3;
arr[1]=5;
arr[2]=3.4f;
arr[3]=2;
arr[4]=50; //算总体重[遍历数组]
float all=0;
for(int i=0;i<6;i++)
{
all+=arr[i];
}
System.out.println("总体重是:"+all);
}
}

对象数组的使用:

package com.test1;
import java.io.*;
public class Demo5_2{
public static void main(String[] args){ //定义一个可以存放四只狗的对象数组
Dog dog[]=new Dog[4]; //给各个狗赋初值 //从控制台输入每个狗的信息[alt+j]快捷键
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
for(int i=0;i<4;i++)
{
dog[i]=new Dog();
System.out.println("请输入狗名");
//从控制台读取狗名
String name=br.readLine();
//将名字赋给对象
dogs[i].setName(name);
System.out.println("");
String s_weight=br.readLine();
float weight=Float.parseFloat(s_weight);
//将名字赋给对象
dog[i].setWeight(weight);
}
//计算平均体重
//计算总体重
for(int i=0;i<4;i++)
{
allWeight+=dogs[i].getWeight();
}
//计算平均体重
float avgWeight/dogs.length;
System.out.println("总体重="+allWeight+"平均="+avgWeight)
}
}
//定义一个狗类
class Dog
{
private String name;
private float weight;
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public float getWeight(){
return weight;
}
public void setWeight(float weight){
this.age=weight;
} }

排序分类:

1、内部排序:

(交换式排序法、选择式排序法、插入式排序法)

2、外部排序法:

(合并排序法、直接合并排序法)

交换式排序法:冒泡排序法、快速排序法

冒泡排序:

package com.test1;
public class Demo5_3{
public static void main(String[] args){ int arr[]={1,6,0,-1,9};
//排序
//外层循环,它决定一共走几趟
for(int i=0;i<arr.length-1;i++)
{
//内层循环,逐个比较,若前大于后则交换
for(int j=0;j<arr.length-1-i;j++)
{
if(arr[j]>arr[j+1])
{
//换位
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
//输出最后结果
for(int i=0;i<arr.length;i++)
{
System.out.print(arr[i]+"");
} 排序方法封装到类中:
class Bubble{ //排序方法
public void sort(int arr[])
{
int temp=0;
for(int i=0;i<arr.length-1;i++)
{
for(arr[j]>arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}

调用:Bubble bubble=new Bubble();

bubble.sort(arr);

选择排序法:

class Select
{
//选择排序
public void sort(int arr[])
{
//默认第一个数最小 for(int j=0;j<arr.length-1;j++)
{
int min=arr[j];
//记录最小数下标
int minIndxe=j;
for(int k=j+1;k<arr.length;k++)
{
if(min>arr[k])
{
//修改最小
min=arr[k];
minIndxe=k;
}
}
}

插入式排序

将n个待排序的元素看成一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中有n-1个元素

class InsertSort
{
//插入排序方法
public void sort(int arr[])
{
for(int i=1;i<arr.length;i++)
{
int insertVal=arr[i];
//insertVal准备和前一个数比较
int index=i-1;
while(index>=0&&insertVal<arr[index]) //将arr[index]向后移动
arr[index+1]=arr[index];
//让index向前移动
index--;
}
//将insertVal插入到适当位置
arr[index+1]=insertVal;
}
}

多维数组

定义:

类型 数组名[][]=new 类型[大小][大小]

package com.test1;
public class Demo5_5{ public static void main(String[] args) int a[][]=new int[4][6]; a[1][2]=1;
a[2][1]=2;
a[2][3]=3; //将图形输出
for(int i=0;i<4;i++)
{
for(int j=0;j<6;j++)
{
System.out.print(a[j]+"");
}
//换行
System.out.println(); }
}

二进制(原码、反码、补码):

1、二进制的最高位是符号位:0表示正数,1表示负数

2、正数的原码、反码、补码都一样

3、负数的反码=符号位不变,其他位取反

4、负数的补码=他的反码+1

5、0的反码、补码都是0

6、java没有无符号数

7、在计算机运算时候,都是以补码的方式来运算的

算数右移:地位溢出,符号位不变,并用符号位补溢出的高位

算数左移:符号位不变,低位补0

集合:

java集合类主要有以下几种:

1、List结构的集合类

ArrayList类,LinkedList类,Vector类,Stack类

2、Map结构的集合类

HashMap类,Hashtable类

3、Set结构的集合类

HashSet类,TreeSet类

4、Queue结构的集合

Queue接口

java集合的用法:

package com.test1;
import java.util.*;
public class Demo7{
public static void main(String[] args){ //定义ArrayList对象
ArrayList a1=new ArrayList();
//显示大小
System.out.println("al大小:"al.size());
}
}

JAVA(3)的更多相关文章

  1. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  2. 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题

    背景起因: 记起以前的另一次也是关于内存的调优分享下   有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...

  3. Elasticsearch之java的基本操作一

    摘要   接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...

  4. 论:开发者信仰之“天下IT是一家“(Java .NET篇)

    比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...

  5. 故障重现, JAVA进程内存不够时突然挂掉模拟

    背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...

  6. 死磕内存篇 --- JAVA进程和linux内存间的大小关系

    运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...

  7. 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用

    有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...

  8. Java多线程基础学习(二)

    9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...

  9. Java多线程基础学习(一)

    1. 创建线程    1.1 通过构造函数:public Thread(Runnable target, String name){}  或:public Thread(Runnable target ...

  10. c#与java的区别

    经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲... 一般C#多用于业务系统的开发 ...

随机推荐

  1. HTML <div> 标签

    定义和用法: <div> 可定义文档中的分区或节(division/section). <div> 标签可以把文档分割为独立的.不同的部分.它可以用作严格的组织工具,并且不使用 ...

  2. 安装VS 2013遇到的问题,及解决方案

    一.在启动调试时报错 Visual Studio 2013 虽然集成安装了 IIS Express 8.0,但是并未安装 WebMatrix ,第一个问题就是这个原因造成的. 解决方案: 1.下载最新 ...

  3. 2014中国黑客榜(beta版)

    黑客,英文hacker.精通计算机各类技术的计算机高手,泛指擅长IT技术的人群.计算机科学家. 最近受某机构所托搜集国内活跃黑客近况.本着客观专业,权威可信的原则参考了国内从00年到最新的黑客榜单,以 ...

  4. HTML 之 head

    使用 base 标签使页面中的所有标签在新窗口中打开.<!DOCTYPE html> <html> <head> <meta http-equiv=" ...

  5. Eclipse 显示所有文件

    Package Explorer -> View Menu -> Filters -> uncheck .* resources http://stackoverflow.com/q ...

  6. SpringMVC 文件上传&拦截器&异常处理

    文件上传 Spring MVC 为文件上传提供了直接的支持,这种支持是通过即插即用的 MultipartResolver 实现的.Spring 用 Jakarta Commons FileUpload ...

  7. 计算机网络(12)-----HTTP协议详解

    HTTP协议详解 http请求 http请求由三部分组成,分别是:请求行.消息报头.请求正文 (1)请求行 请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Metho ...

  8. c++内存对齐

    内存对齐原则: 1.数据成员对齐规则:struct, union的数据成员,第一个数据成员放在offset为0的地方,之后的数据成员的存储起始位置都是放在该数据成员大小的整数倍位置.如在32bit的机 ...

  9. android中添加背景音乐

    方法一:这是使用java中的多线程,另外new出一个类,用类来启动音乐. 这个方法,就像当初写java的小游戏一样,不过是在电脑上运行的,可以控制每一个动作,比如你的触碰动作,但是,在我这个游戏中,我 ...

  10. 用PowerMock mock 临时变量

    在开发时,经常遇到这种情况,被测试方法所调用的类不是通过构造注入的,而是通过临时new出来的,如下面待测方法: public class EmployeeService { private Emplo ...