----<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

紧接着上一期内容,继续来复习一下java基础的知识点,主要来复习一下有关线程的内容吧!

1.向上转型:Animal a = new Cat();//自动类型提升,猫对象提升为动物类型,但是特有的功能无法访问。作用:就是限制对象的特有功能的访问。

向下转型:紧着着Animal a = new Cat();  Cat c = (Cat)a; 如果还想用具体动物猫的特有功能,可以将该对象向下转型。向下转型的目的是:为了使用子类的特有功能

注意:对于转型,自始至终都是子类对象在做着类型的变化

2.instanceof:为了更准确鉴别一个对象的真正类型,只能用于引用数据类型的判断,而instanceof通常在向下转型前用于健壮性的判断。

3.多态3个特点:

(1)成员变量 :

编译时:参考引用变量所属的类中是否有调用的成员变量,有,编译通过,没有,编译失败。运行时:参考引用变量所属的类中是否有调用的成员变量,并运行该所属的类中的成员变量。简单说:编译和运行都参考的是等号左边  (Fu f = new Zi();)

(2)成员函数:

编译时,参考引用变量所述的类中是否有调用的函数,有,编译通过;没有,编译失败。运行时,参考的是对象所属的类中是否有调用的函数。简单说:编译看左边,运行看右边。

(3)静态函数:

编译、运行都看参考引用变量所属的类中是否有调用静态方法,简单说:编译运行都看左边。对于静态函数,不需要对象,只要用类名调用即可

(内部类)

4.内部类访问特点:(1)内部类可以直接访问外部类中的成员(包括外部类中的私有成员)  (2)外部类要访问内部类,必须在外部类中,建立内部类的对象

当分析事物时,发现该事物描述中还有事物,而且这个事物还在访问被描述事物内容。这时就把还有的事物定义成内部类来描述

5.内部类中如果定了静态成员,则该内部类也必须是静态的。

6.为什么内部类能够直接访问外部类成员?

那是因为内部类持有了外部类的引用。外部类名.this

7.内部类在局部位置上只能访问局部中被final修饰的局部变量

8.匿名内部类:就是内部类的简写(其本质就是一个匿名子类对象)。必须有前提:内部类继承或实现一个外部类或者接口

9.error与Exception的区别:

Error :由JVM抛出多的严重性问题,一般不可处理,这种问题的发生一般不采取针对性处理-直接修改程序,而是系统底层错误问题。

Exception:异常,是一般性问题。

(线程)

10.什么是程序?什么是进程?什么是线程?

程序:是在设备上的可执行文件     进程:正在运行的程序,是程序动态的执行过程(动起来的程序)   线程:进程内部单一的顺序控制流     并发:操作系统将时间划分为很多时间片段,均匀的分配给正在运行的程序,微观上走走停停,宏观上都在运行,这现象叫并发。

11.多线程:指同一进程中,并发执行的多个子程序流。当JVM启动时,就启动了多线程,至少有两个线程启动,一个是执行main函数的主线程,另一个是垃圾回收的线程

12.创建线程的目的是什么? 是为了开辟一条执行路径,去执行指定的代码和其他代码实现同时运行。

13.Java中建立线程有两种方法:(1)一种是继承Thread类,重写run()方法  (2)实现Runnable接口,并通过Thread和实现Runnable的类建立线程 。

14.实现Runnable接口的好处:(1)将线程的任务从线程的子类中分离出来,进行了单独的封装,按照面向对象的思想将任务封装成对象。  (2)避免了Java单继承的局限性(注意:在使用多线程时一定要考虑线程的安全问题)

15.线程安全问题产生的原因?(1)多个线程在操作共享的数据 (2)操作共享数据的线程代码有多行

16.当一个线程在执行操作共享数据的多条代码过程中,其他线程参与了运算就会导致线程安全问题的产生。

解决思路:就是将多条操作共享数据的线程代码封装起来,当有线程在执行这些代码的时候,其他线程不可参与运算。必须要当前线程把这些代码都执行完毕后,其他线程不可参与运算。

(1)在Java中,用同步代码块就可以解决这个问题

同步代码块格式:    synchronized(对象){

            需要被同步的代码块

          }

同步的好处:解决了线程的安全问题

同步的弊端:会相应降低效率,因为线程外的线程都会判断同步锁。

同步的前提:同步中必须有多个线程并使用同一把锁

(2)同步函数:同步函数使用的锁是固定的this

17.同步函数与同步代码块的区别?

同步函数使用的锁是固定的this。同步代码块使用的锁是任意的对象(建议使用)

18.静态的同步函数使用的琐是:该函数所属字节码文件对象,可以用getclass()方法获取,也可用当前类名.class表示。

黑马程序员—— Java SE(3)的更多相关文章

  1. 黑马程序员 ——Java SE(1)

    ----<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训 ...

  2. 黑马程序员—— Java SE(2)

    ----<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训 ...

  3. 【黑马18期Java毕业生】黑马程序员Java全套资料+视频+工具

        Java学习路线图引言:        黑马程序员:深知广大爱好Java的人学习是多么困难,没视频没资源,上网花钱还老被骗. 为此我们历时一个月整理这套Java学习路线图,不管你是不懂电脑的小 ...

  4. 黑马程序员Java基础班+就业班课程笔记全发布(持续更新)

    正在黑马学习,整理了一些课程知识点和比较重要的内容分享给大家,也是给自己拓宽一些视野,仅供大家交流学习,大家有什么更好的内容可以发给我 ,现有黑马教程2000G  QQ 1481135711 这是我总 ...

  5. 黑马程序员----java基础笔记中(毕向东)

    <p>------<a href="http://www.itheima.com" target="blank">Java培训.Andr ...

  6. 黑马程序员——JAVA基础之泛型和通配符

    ------- android培训.java培训.期待与您交流! ---------- 泛型:            JDK1.5版本以后出现新特性.用于解决安全问题,是一个类型安全机制. 泛型好处: ...

  7. 黑马程序员——JAVA基础之简述面向对象,类,变量,匿名对象

    ------- android培训.java培训.期待与您交流! ---------- 面向对象: 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程 强调的是功能行为 面向对象 将 ...

  8. 黑马程序员——JAVA基础之语法、命名规则

    ------- android培训.java培训.期待与您交流! ---------- 1.java语言组成:关键字,标识符,注释,常量和变量,运算符,语句,函数,数组. 2.java关键字:被Jav ...

  9. 黑马程序员——JAVA基础之File类,递归,打印流,合并切割流

    ------- android培训.java培训.期待与您交流! ---------- File类 用来将文件或者文件夹封装成对象 方便对文件与文件夹的属性信息进行操作. File对象可以作为参数传递 ...

随机推荐

  1. C#、.NET和ASP.NET三者之间的区别

    刚毕业后出去找工作面试的时候就遇到这个问题!.回答不上来.回来网上查的如下: 那么 .NET.C#和ASP.NET这三者之间区别不清楚,到底它们之间有什么联系呢? 1..NET是一个平台,一个抽象的平 ...

  2. vs2013+EF6+Mysql

    1.首先需要在整个项目中添加一个Model类库,在类库中引用EF 我需要在该项目下添加EF的MYSQL对象实体 首先需要引入几个相关引用,我通过NuGet来添加,如下图 接下来我需要通过ADO.NET ...

  3. 今天工作中遇到的根据用户id取得产品大类和相关小类的问题

    今天做了一个项目,需求是客户登陆后,可以从会员中心发布详细信息(包括联系信息和公司信息),插入到数据库后在将来生成一个公司页面模板,一般的产品大类+小类 用repeater嵌套就可以了,但是这个涉及到 ...

  4. iOS_SN_CoreData(二)

    上一篇是讲怎么进行CoreData的基本操作,这一篇是讲NSFetchedResultsController得到CoreData数据怎么与tableView完美结合,和动画操作的实现. NSFetch ...

  5. POJ3641 Pseudoprime numbers(快速幂+素数判断)

    POJ3641 Pseudoprime numbers p是Pseudoprime numbers的条件: p是合数,(p^a)%p=a;所以首先要进行素数判断,再快速幂. 此题是大白P122 Car ...

  6. SpringMVC项目中中文字符乱码问题及解决办法总结(非专业最优解决办法) -- ajax传值乱码; request.getParameter()乱码;

    情况一: ajax中传值时是乱码(后台可以获取到中文字符,但用@ResponseBody返回时前台为乱码) 情况二: Controller 中 request.getParameter()获取到的是乱 ...

  7. Python新手学习基础之函数-关键字参数

    关键字参数 函数也可以使用 键 =值 的关键字参数形式被调用,这种调用形式的参数被称为关键字参数. 特别是在一个有许多参数的函数下,你想要指定参数中的部分参数,你可以使用关键字参数的方式来调用函数. ...

  8. SQL语句中的乘号

    在ADO中,我们需要在SQL语句中使用乘法运算,可是添加'*'以后执行程序总是会出错,这是因为‘*’与sql中的‘*’关键字重合了,所以编译会出错. 解决办法:将乘法运算放到sql语句外面,将结果放入 ...

  9. Android学习笔记--AlertDialog应用

    1. 自定义实现带图标的TextView IconTextView.java package com.evor.andtest; import android.content.Context; imp ...

  10. 汉诺塔问题C++实现

    大家好,我是小鸭酱,博客地址为:http://www.cnblogs.com/xiaoyajiang 以下进行汉诺塔问题的递归实现 #include <iostream.h> int gb ...