Java基础的视频笔记
来源:互联网 发布:浅猪家的七七知乎 编辑:程序博客网 时间:2024/05/16 08:57
@传智博客 张孝祥老师Java基础视频
**************************************************************************************
Author:lxy_1015@126.com
Java基础教程1
====================================================
1.一个Java文件中最多只能有一个public的类,因为Java文件的文件名必须与
其中public 类的名字相同。
2.javac命令把.java源文件编译成Java字节码文件,.class文件。这个文件中
包含里Java源文件中pulbic类的信息。
java命令执行时,后面的参数不是字节码文件,而是对Java文件中的类进行解释。
a.java
javac a.java
所以:执行java a
而不是 java a.class
Java基础教程2_2
=====================================================
1.float在内存的存储形式
2.Java内存中的堆和栈
子函数调用的是开辟的内存空间位于栈内存里。
用new创建的数组及对象的实体存放的堆中,而对象引用(堆的内存地址)存放在栈内存里。
例如:int []x = new int[100]; 或者
int []y;
y = new int[100];
数组的引用x里面存放这数组的首地址,位于栈内存里。而真正的100个int数据则在x里那个地址
存放的位置,在堆内存里面。
当x生命周期结束,或者x=null;即对象引用不再指向堆内存。那个堆内存也不会释放,变成垃圾,
直到将来一个不确定的时间,由Java垃圾回收器将其回收。
Java基础教程3
=====================================================
1.== 与 equals两个比较之间
== 用于比较值是否相等,equals 用于比较两个对象的内容是否相等
举例
String str1 = new String("abc");
String str2 = new String("abc");
String str3 = str1;
此时str1与str2这两个引用句柄分别存放着两个对象的首地址,对象的引用句柄是在栈内存里的
但是对象是在堆内存上的。因为两个“abc”是两个不同的对象,所以str1与str2里面放的地址是不
一样的。== 运算符比较的是值,也就是说str1与str2的值是不同的。但内容相同。
str3与str1指向同一个对象,所以他们的值(也就是存放的对象的地址)是相等的,内容也是相同的,
所以
str1 == str2 的值是false
str1 == str3 的值是true
str1.equals(str2)和str1.equals(str3) 的值都是true。
2.设计类的时候追求:强内聚,弱耦合
3.垃圾回收的过程
finalize()方法是被垃圾回收器调用,回收对象的资源。但是不确定垃圾回收器什么时候启动。
也许直到程序运行结束,垃圾回收器都没有启动。finalize()也没有被执行。
System.gc()方法,唤起垃圾回收器,回收垃圾。这个可以控制垃圾回收器。
皮之不存,毛将附焉:所以构造方法和析构方法调用的时候对象都是存在的。
如果对象都不存在了,怎么调用它的方法呢。
4.形参与实参
a.基本数据类型作为参数传递时副本传参,即只修改形参而不修改实参本身的值。
b.如果对象的引用作为参数传递。传的是对象的堆内存地址,把地址复制一份传给这个方法作为参数,
此对象就具有了两个引用句柄,所以对形参对象的修改就是对实参对象的修改。
c.数组作为参数是,情况跟传递对象当作参数是一样的。
5.static在类中修饰的成员变量是所有对象共同拥有的,任何一个对象对其进行修改,其他类再访问的
时候都是修改以后的值。
6.怎样保证一个类在程序中只能创建一个实例对象:单态设计模式
class pason
{
static Pason p = new Pason();//必须是静态的,不然会循环开辟内存,直到吃完内存
private Pason(){};//构造方法要设计成私有的
static public Pason getObj()//提供给外部的接口
{
return p;
}
}
外部通过getObj()方法获得对象,无论调用多少此,p指向的对象是静态的,所以他们都是同一个对象
的多个引用而已
Java基础教程4
=====================================================
instanceof关键字
a是一个类的对象,B是一个类
a instanceof B
如果a是B的一个对象或子类对象。则上式值为true.
Java基础教程5
=====================================================
多线程
1.继承Thread类:
定义一个类A extends Thread
重新其中的run()方法。
创建A的对象a。
a.start();//启动线程
a.setDeamon(true);//后台运行线程
a.join();//合并线程到主线程,变回单线程模式
a.join(1000);//合并1秒后再分成两个线程同时运行
2.实现Runnable接口:
定义一个类A implements Runnable
重新其中的run()方法。
创建线程对象Thread tt = new Thread(new A());
tt.start();//启动线程
使用与多线程的程序处理同一资源的情况,比Thread要灵活很多
举例四个售票线程共同卖100张票。
3.线程安全
String str = new String("");//锁其标,全局变量
synchronized(str){......}//同步代码块
或者定义一个子函数用synchronized修饰
public synchronized void sale(){......}//同步函数
- Java基础的视频笔记
- 传智播客的JAVA SE基础视频 1-5 自学笔记
- java基础视频课堂笔记第一讲
- 黑马程序员,看Java基础视频笔记:基础类型的大小范围和类型转换
- 李欣老师视频笔记,只记录自己可能会忘的基础Efficient java
- c#视频基础笔记
- JavaScript 基础视频笔记
- java基础的笔记
- 黑马程序员,看Java基础视频笔记:反射
- 黑马程序员——Java基础视频笔记(一)
- 黑马程序员——Java基础视频笔记(二)
- 黑马程序员——Java基础视频笔记(三)
- java基础到框架,笔记视频全部都有。
- 听java视频记的笔记
- 分享些不错的Java基础视频--黑马毕向东老师Java经典基础视频
- 基础视频--第二天两比较重点的笔记
- hibernate基础(视频学习笔记)
- MATLAB基础视频自学笔记
- Android应用中在ImageView中显示SD卡上的图片
- 如何判断NSDictionary是否包含某个键
- 移植QT4.5.3至OMAP-L138(1)
- android 获取手机型号和系统版本号
- Android中获取IMEI码
- Java基础的视频笔记
- android 使用BroadcastReceiver实现开机启动Service或Activity
- 关于linux centos下配置网络问题
- Hadoop FileSystem API读取数据实例简单注释
- 范蠡说,只可共患难,不可共安乐
- android 止横屏和竖屏
- servlet的定义及其生命周期
- Hive源码解析—之—Hive的入口
- Commons BeanUtils 中对Map的操作