java中级-1-基础知识回顾

------- android培训java培训、期待与您交流! ----------


前言

        在学习新知识前,我们往往需要借鉴从前的学习经验来世我们能够更加快速的学习。为了能够简化大家的学习时间,并是自己在总结中获得对知识的新的理解及感受,本人将自己的Java学习经验总结于此。希望这份总结可以帮助到更多渴望学习Java编程的朋友,LZ在此献丑了。

        本总结(一下简称为总结)的着重点主要位于Java集合、GUI及网络编程部分。因此,对于一些较为基础的内容,由于各大院校及市面上的精品教程中都有仔细的论述,总结中就不再探讨了。

        在我们开始前,我先在此申明,本系列Java总结中的代码、文字以及图片等内容,均由本人原创,未经批准,不得转载。后文不再赘述。

        在进行繁琐的部分前,我们先来看一些概念:

递归

        当一个函数内部调用本身的时候,这样的手法就形成了递归调用。递归调用可以节省代码长度,在软件结构上,以空间的部分效率损失来提高程序的时间效率。使用时关键有两个条件:递归判定条件的有效性,和循环递归次数的控制。这两条都是为了保证递归运算不会发生栈溢出,从而导致程序失效。

 

继承

        Extends 继承自父类的方法、成员变量。可以对父类的成员进行重载,并实现父类中的一些具体的抽象Abstract类的实际内容。具体的继承方法可以分为两种,直接利用extends,或者利用implements来实现interface类接口。具体区别,及其格式如下:

        classa extends b //继承类
        classa implements b //实现接口


 

多态

        即直接通过父类来创建子类对象,这样做的好处是提高了代码的重用率,并便于封装。这里我们着重强调一下多态的特点(略)。当使用多态时,分为向上转型和向下转型。向上转型是将子类通过父类建立来实现的对象创建方法。向下转型是指,将父类通过强制装换,转为子类对象,来实现对子类成员变量的使用。

        如果通过多态,父类对象想使用子类当中的特有方法的话,我们就要使用向下转型。特有方法指的是,非父类中声明过的方法,即子类独立订立的方法。

 

导入

        普通导入格式,例如:

        import  java.util.*;

        静态导入是Jdk1.5版本后新增的一项功能,他能够导入对应包中的所有静态成员,包括静态方法、静态变量。具体用法,我们见下例:      

  import  java.util.*;
        import  static  java.util.Arrays.*;
        import  static  java.lang.System.*;
 
        class StaticImport
        {
               public static void main(String[] args)
               {
                      int[] a = {1,2,3,4,5,6};
                      out.print(binarySearch(a,1,4,2));
             
                      //但是,如果反生重名,则需要带上类名:
                      out.println(Arrays.toString(a));
               }
        }

        这种引用,可以简化编程,提高可读性。

 

 

线程

        线程是轻量化的进程,是系统进行调度的最小单位。Java中的线程有专门的类别,并将其中的大部分常用的方法封入其中。需要注意的是挂起进程等所示用的wait、notify、notifyAll、sleep、setDaemon、join方法是继承自Object类而来的。

        常用的进程方法包括:currentThread()、getName()等

        Interrupt():强制唤醒进入等待的线程,并抛出InterruptException

        setDaemon():设置守护线程,即后台线程。守护,即守护其他线程,内容自定。

        join():抢占主线程资源,主线程只有等调用join的线程完毕后,才能执行

        setPriority(int newPriority) :设置线程优先级,分为1-10这10各级别,有:MAX_PRIORITY=10、MIN_PRIORITY=1、NORM_PRIORITY=5,这三个默认的常量。

        yield():立即释放当前线程执行权

        线程组,谁开启的该线程,该线程就属于那个线程组。线程组,ThreadGroup。

 

Synchronize

        Synchronize能够实现同步,其添加方式,从类型上可以分为4中:方法锁、变量锁、对象锁、类锁。其4种锁对应的用处不同,所管理的范围也是依次变大的。

 

锁(lock)

        Lock类是java1.5版本后,跟新的新特性,由于单纯的使用synchronize命令已经难以满足需求,并且,synchronize对于一些需要使用多个不同类型信号量来进行线程间通信,例如常见的生产者消费者问题,吸烟问题,哲学家吃饭问题,读写者问题,这些问题由synchronize实现过于繁琐。新版java中,关于锁的使用常用lock来实现,其中常用的方法有:newCondition()、lock()、unlock()及其子类ReentrantLock的ReentrantLock()构造函数,通过多态实现。信号量通过condition类实现,其所常用的方法有。这些方法的目的都是为了实现对计算机临界资源,源代码临界区的管理。

 

 

异常

        getMessage()

        toString()

        printStackTrace():三者都是打印异常状态信息,不过信息量,由上到下依次增大。

        如果抛出的异常属于RuntimeException,则不需要在类声明处写throws+异常类型。因为,RuntimeException会由JVM自动处理,即暂停程序。其它的异常,分为两种定义情况:抛出异常,自身不处理;不抛出异常,自身try catch处理。

 

        抛出RuntimeException或者它的子类,在函数定义的时候不需要写throws语句

        如果抛出其他的exception,则必须在定义函数的时候,显示出throws语句

 

 

StringBuffer与StringBuilder

        StringBuffer较之StringBuilder来说是加了锁的,因此更为安全。当然,这样做的同时,也使得其效率较低。

        这两个类主要实现了String缓冲池的作用,实现了对字符串的增删改查操作,分别对应:

        增:append();insert();insert(index, 数据)

        删:delete(start , end);deleteCharAt(index);

        改:replace(start , end , string);setCharAt(index, char)

        查:charAt(index);indexOf(str);indexOf(str, pos);lastIndexOf(str);length();substring()

        反转:reverse(),特有方法;

        将缓冲池中数据提取到字符数组中:getChars(srcBegin, srcEnd , char[] ch , dstBegin)

        StringBuilder多线程不安全,如果为了效率则使用StringBuilder,如果需要同步则用StringBuffer。

 

String类

        compareTo(String anotherString) :按字典序比较字符串;

        compareToIgnoreCase(String str) :忽略大小写的按字典序比较字符串;

        equalsIgnoreCase():忽略大小写比较相等;

        split ( String s ):按照s对调用他的函数进行分割;

        trim ( ):去掉字符串两边的空格;

        toCharArray( ):将String类对象变为对应char数组;

        concat(String str) :将指定字符串连接到此字符串的结尾;

        valueOf(int i ):返回对应int型的字符串表示,其他数据类型一样;

        valueOf(char[] data,int offset, int count) :返回从data的offset下标开始往后count个字符所  组成的字符串;

        substring(int beginIndex,int endIndex) :返回从下标bdginIndex始,到endIndex-1下标的子串;

 

-------  android培训java培训、期待与您交流! ----------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值