包package
对类文件进行分类管理
给类提供多层命名(名称)空间
写在程序文件第一行
类名的全称是 包名.类名 要自己创个package 的名字的文件夹 不过cmd 中有有个命令
javac -d . PackageDemo.java 在当前路径下创建文件夹 -d 指定放置生成的类文件的位置
package mypack
class PackageDemo
java mypack.PackageDemo
包也是一种封装形式 (权限限制不能跨包访问)
Demo A = new DemoA(); ——> packa.DemoA
因为DemaA已经有包的所属,所以必须要明确其包名 所以DemoA 名词是错的应该包名.类名
软件包 不存在
原因是在当前目录下没找到 因为packa存放在其他目录下 应该配置一个classpath
packa.DemoA 在packa 中不是公共的无法从 外部软件包中进行访问
可以用public 修饰 类名 扩大权限
show() 不是公共的
把show() 修改修饰名
包与包之间的类进行访问 被访问的包中的类必须是public的 被访问的包中的类的方法也必须是public的
只有继承了 才能使用父类的protected
public protected default private
同一类中 ok ok ok ok
同一包中 ok ok ok
子类中 ok ok
不同包中 ok
通配符(通通都匹配的符号) *
import packa.* 导入了packa包中所有的类
导包的原则 用到哪个类就导入哪个类
import 干嘛用的 为了简化类名书写
jar java 的压缩包
jar -cvf 压缩
jar -xvf 解压
多态本质是 父类引用指向子类对象
内部类中有静态成员 内部类要求是静态
多catch 父类Exception放下面
进程:正在进行中的程序(直译)
应用程序在内存中的空间
线程 就是进程中的一个负责程序执行的控制单元(执行路径)
一个进程中可以有多个执行路径称之为多线程
一个进程当中至少要有一个线程
开启多个线程是为了同时运行多部分代码
每一个线程都有自己运行的内容 这个内容可以称为线程要执行的任务
多线程的好处:解决了多部分同时运行的问题
多线程的弊端:线程太多 效率降低
应用程序的执行是cpu在做着快速的切换完成的 cpu切换是随机的 由 时间片
jvm启动时就启动了多个线程至少有2个线程可以分析出来
1、执行main函数的线程
该线程的任务代码都定义在main函数中
2、负责垃圾回收的线程
如何创建一个线程
创建线程方式1 :继承Thread类
1、定义一个类继承Thread 类
2、覆盖Thread类中的run方法
3、直接创建Thread的子类对象
创建线程的目的是为了开启一条执行路径,去运行指定的代码和其他代码实现同时运行
而运行的指定代码就是这个执行路径的任务。 jvm创建的主线程的任务都定义在了主函数中
而自定义的线程任务 在 Thread类用于描述线程,线程是需要任务的 所以Thread 类也有对任务的描述
这个任务就是通过Thread类中的run方法来体现 也就是run方法就是封装自定义线程运行任务的函数
run方法里面定义的就是线程要运行的任务代码
我们开启线程是为了运行执行代码所以只有继承Thread类复写run方法将运行的代码定义在run方法中即可
用 start() 方法导致此线程开始执行jvm调用此线程的run()
可以通过Thread 的getName获取线程的名称 Thread-编号(从0开始)
可以通过 子类的构造函数传递名字给 Thread(String name ) 改变线程名称
主方法弹栈 只要还有线程 jvm就不结束
主线程异常也不影响其他的线程
getName() 获取对象的线程名称
用Thread.currentThread().getname() 返回当前线程名称
2154

被折叠的 条评论
为什么被折叠?



