昨日内容回顾

  1. 数据类型

    • 基本数据类型

      1) byte, short, int, long, float, double

      2) boolean[true, false]

      3) char

      100: 默认为int

      1.2: 默认为double

    • 引用类型

      1) class

      2) interface

      3) [],数组

  2. 函数

    • 作用: 封装功能代码

    • 不能嵌套定义

    • 函数的结果返回给调用者

    • 函数定义格式

         [修饰符][返回值类型][函数名](类型1 参数1, 类型2 参数2,...){
      }
    • 函数调用格式: 函数名()

    • 函数重载:overload

    • 递归:recursive, 自己调用自己

  3. 指针

    • java没有指针是指没有显示的指针操作
    • 引用就是指针
    • 指针是对象的内存地址
  4. 堆:heap, Object head

  5. 栈:stack, 方法栈

  6. 面向过程编程: c, 面向方法。粒度

  7. 面向对象: oop, oriented object program.面向对象编程

    • 相关概念

      1) class : 类,类是对象的抽象, 对现实世界的事物的软件抽象。

      2) Object : 对象,对象是类的实例。new 类名

      3) instance : 实例. 就是对象。
    • 特征

      1) 封装

      2) 继承

      3) 多态

作业解析

  1. 负数的表现形式,为什么如此设计?

    补码形式存放,保证正负求和为0

  2. -128是在内存中是如何存储的?推算过程?

     124 = 0111 1100 | -124 = 1000 0100
    125 = 0111 1101 | -125 = 1000 0011
    126 = 0111 1110 | -126 = 1000 0010
    127 = 0111 1111 | -127 = 1000 0001
    | -128 = 1000 0000
  3. 如果字节表示为11111111,则其真实数据是多少?

    -1

  4. 正负数是否都支持补码的方式?

     1 = 0000 0001 | -1 = 1111 1111
    127 = 0111 1111 | -127 = 1000 0001
  5. 正数是否是负数的减一取反?

     -127 = 1000 0001 --->
    1000 0000 --->
    0111 1111 = 127 -1 = 1111 1111 --->
    1111 1110 --->
    0000 0001 = 1
  6. 空心三角形

     /*
    *
    * *
    * *
    ******* */
    public void printTriAngle(){
    int n = 4;
    for(int i=1;i<=n;i++) {
    for(int j=1;j<=2*n-1;j++) {
    if(i==1) {
    if(j==n) {
    System.out.print("*");
    }
    else {
    System.out.print(" ");
    } }
    else if(i==n){
    System.out.print("*");
    }
    else {
    if(j==(n-i+1) || j==(n+i-1)) {
    System.out.print("*");
    }
    else {
    System.out.print(" ");
    }
    }
    }
    System.out.println();
    }
    }
  7. 倒三角空心

     public void printInverseTriAngle(){
    int n=4;
    for(int i=1;i<=n;i++) {
    for(int j=1;j<=2*n-1;j++) {
    if(i==1) {
    System.out.print("*");
    }
    else if(i==n) {
    if(j==n) {
    System.out.print("*");
    }
    else {
    System.out.print(" ");
    }
    }
    else {
    if(j==(n-(-i+n))|| j==(n+(-i+n))) {
    System.out.print("*");
    }
    else {
    System.out.print(" ");
    }
    }
    }
    System.out.println();
    }
    }
  8. [定义函数]

    add // +

    subtract // -

    multiple // *

    divide // /

    支持float,doule,long,int。//函数重载.

     public int add(int a,int b){
    return a+b;
    }
    public int add(float a,float b){
    return a+b;
    }

数组

  1. 容器,同一种数据类型的集合。

  2. 通过下表,以0为基址。

  3. 定义数组

    类型[] 名称 = new 类型[数字];

    类型[] 名称 = new 类型[]{};

    int x[] = new int[];

    int[][] arr = new int[][];

    int[][][] arr = ...

  4. 数组越界异常:java.lang.ArrayIndexOutOfBoundsException

  5. 空指针异常:java.lang.NullPointerException

网络命令

  • ipconfig //查看ip地址
  • ping 192.168.12.7 //测定指定的地址是否连通
  • ping www.baidu.com //测试外网的连通情况
  • ping www.baidu.com -t //测试网络持续连通情况

数组的操作

  1. 选择排序

     //3 1 2 5 4 --->
    //1 3 2 5 4 --->
    //1 2 3 5 4 --->
    //1 2 3 5 4 --->
    //1 2 3 4 5
    public static void selectSort(int[] arr){
    for(int i=0; i<arr.length-1;i++){
    for(int j=i+1; j< arr.length;j++){
    if(arr[i]>arr[j]){
    int temp = arr[i];
    arr[i] = arr[j];
    arr[j] = temp;
    }
    }
    }
    //增强for循环
    for(int ii : arr){
    System.out.print(ii+" ");
    }
    System.out.println();
    }
  2. 冒泡排序

    每次都将最大的沉到底部

     //5 3 4 2 1 --->
    //3 4 2 1 5 --->
    //3 2 1 4 5 --->
    //2 1 3 4 5 --->
    //1 2 3 4 5
    //arry.length
    for(int i=arry.lengh-1;i>0;i--){
    for(int j = 0;j<i;j++){
    if(arr[j]>arr[j+1]){
    int temp = arr[j];
    arr[j] = arr[j+1];
    arr[j+1] = temp;
    }
    }
    }
  3. 折半查找

    在有序的数列中,进行二分法查找,每次取出搜索范围的中间值进行比较,依次再进行范围的缩小,直至找到所需要的值。

     public static int halfFind(int[] array,int num){
    int min = 0;
    int max = array.length-1;
    while(min<=max){
    int mid = (min+max)/2;
    //找到了
    if(array[mid] == num){
    return mid;
    } //范围落在左半边
    if(array[mid]>num){
    max = mid - 1 ;
    }
    //范围落在右半边
    else{
    min = mid + 1;
    }
    }
    return -1;
    }

  1. 类的属性也叫成员变量。

  2. 类的方法也叫成员函数。

  3. 成员变量有默认的初始化值。

  4. 局部变量没有默认的初始化值。

构造函数

  1. 没有返回值

  2. 函数名和类名相同。

  3. 默认的构造函数是 ClassName()

匿名对象

this : 关键字,对象内部指向自身的一个指针。

javabean

  1. 私有属性;

  2. 标准的getter/setter方法.

作业

  1. 定义一个函数,函数功能是动态提取int[]中元素的最大值。

  2. 定义一个函数,从数组中查询指定的元素首次出现的位置。

  3. 定义函数,完成冒泡排序,大数下沉。

  4. 折半查找。

  5. 定义一个函数,实现矩阵的转置.arr[i][j] == arr[j][i];//前提条件是正方的。

  6. 遍历三维组数,横向输出三维数组的每一个层。

  7. 定义一个类:Dog 有名称 color age cry();

  8. 阐述出来堆区,栈区,何时出现溢出,如何解决。

  9. 将一个字节转换成0~255之间的整数:将符号位作为数字位

  10. 对数组进行冒泡排序(实现倒序),封装成方法,返回排序后的数组

  11. 实现数组的拷贝,将一个数组中的元素复制到另一个数组中,如果元素个数不等,或者截取,或者回绕。

  12. 输出整数的二进制表示方式

  13. 选择排序

Java基础3-数组操作;类概述的更多相关文章

  1. Java基础系列-二进制操作

    原创文章,转载请标注出处:<Java基础系列-二进制操作> 概述 Java源码中涉及到大量的二进制操作,非常的复杂,但非常的快速. Java二进制表示法 首先了解下二进制,二进制是相对十进 ...

  2. Java基础-日期格式化DateFormat类简介

    Java基础-日期格式化DateFormat类简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.DateFormat类概述 DateFormat 是日期/时间格式化子类的抽象 ...

  3. java 8 Stream中操作类型和peek的使用

    目录 简介 中间操作和终止操作 peek 结论 java 8 Stream中操作类型和peek的使用 简介 java 8 stream作为流式操作有两种操作类型,中间操作和终止操作.这两种有什么区别呢 ...

  4. Java基础---IO(一)---IO流概述、字符流、字节流、流操作规律

    第一讲     IO概述 概述 1.IO流:即InputOutput的缩写. 2.特点: 1)IO流用来处理设备间的数据传输. 2)Java对数据的操作是通过流的方式. 3)Java用于操作流的对象都 ...

  5. java基础之数组常用操作

    常用的对数组进行的操作 1.求数组中最大值,最小值 思路:假设下标为0的元素是最大值,遍历数组,依次跟max进行比较,如果有元素比这个max还大,则把这个值赋给max.最小值同样 public cla ...

  6. Java基础语法(自定义类、ArrayList集合)

    Java基础语法 今日内容介绍 u 自定义类 u ArrayList集合 第1章 引用数据类型(类) 1.1 引用数据类型分类 提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类 ...

  7. Java基础总结--数组

    ---数组的定义---组织存储一组数据1.存放相同类型数据的集合--就是一种容器本质上变量也是一种容器--区别就是只存储了一个数据的容器--面对容器,而不是分散的数据eg.买一盘鸡蛋--蛋托其实就是容 ...

  8. java中的集合操作类(未完待续)

    申明: 实习生的肤浅理解,如发现有错误之处.还望大牛们多多指点 废话 事实上我写java的后台操作,我每次都会遇到一条语句:List<XXXXX> list = new ArrayList ...

  9. Java 基础 常用API (Object类,String类,StringBuffer类)

    Java API Java 的API(API: Application(应用) Programming(程序) Interface(接口)) Java API就是JDK中提供给我们使用的类,这些类将底 ...

随机推荐

  1. Linux下进程与线程的区别及查询方法

    在平时工作中,经常会听到应用程序的进程和线程的概念,那么它们两个之间究竟有什么关系或不同呢?一.深入理解进程和线程的区别 1)两者概念 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进 ...

  2. 【强大的Java集成开发工具】MyEclipse 2015 Stable 2.0 for Mac

    [简介] MyEclipse是一款 Mac 上的Java 强大的集成开发工具,今天和大家分享最新的 MyEclipse 2015 Stable 2.0 版本,MyEclipse 2015 基于 Ecl ...

  3. xlrd(excel导入mysql数据库)

    一.xlrd模块: python 对 excel 文件进行读操作 1.下载xlrd 并安装 http://pypi.python.org/pypi/xlrd wget https://pypi.pyt ...

  4. kubernetes1.5.2 DNS

    Cluster DNS主要包含如下几项: SkyDNS :提供DNS解析服务. Etcd :用于DNS的存储. Kube2sky :监听Kubernetes,当有新的Service创建时,将其注册到e ...

  5. JSON与XML之间的转换

    public class JsonTest { private final Logger cLogger = Logger.getLogger(getClass()); /** * XML转JSON ...

  6. HBase基础之常用过滤器hbase shell操作(转)

    创建表 create 'test1', 'lf', 'sf' lf: column family of LONG values (binary value)-- sf: column family o ...

  7. JDBC-Transaction

    /** * 数据库中事务,指一组逻辑操作单元,使数据从一种状态变换到另一种状态 * 操作全部完成时,数据被保留,一致性可以保持,一部分操作失败时,整个操作全部视为错误,所有被操作数据回退到开始状态,放 ...

  8. ACM-ICPC 2018 南京赛区网络预赛 E AC Challenge(状压dp)

    https://nanti.jisuanke.com/t/30994 题意 给你n个题目,对于每个题目,在做这个题目之前,规定了必须先做哪几个题目,第t个做的题目i得分是t×ai+bi问最终的最大得分 ...

  9. HDU 1023(卡特兰数 数学)

    题意是求一列连续升序的数经过一个栈之后能变成的不同顺序的数目. 开始时依然摸不着头脑,借鉴了别人的博客之后,才知道这是卡特兰数,卡特兰数的计算公式是:a( n )  =  ( ( 4*n-2 ) / ...

  10. HTML第五耍 表格标签

    HTML标记语言中可以使用table标签创建表格. 表格由 <table> 标签来定义.每个表格均有若干行(由 <tr> 标签定义),字母 tr 指表格数据(table row ...