第六讲环境变量的设置不设置环境变量,软件装了也用不了是启动类的类名即main函数所在的类第八讲变量的命名规则必须写一个能判断真假的值Java是要跨平台的,故类型变量的所占用字节数必须是固定的,Java中一个数据所占字节数是死的,这样才能做到跨平台Char类型两个字节基本能把全世界通用的字符表达出来了,但还是不够用的。非字符串相加把它们的值相加,字符串与非字符串相加把它们本身的信息加起来。两个是不一样的。运算符,除是一样的,取余是不一样的记得常用的二进制C/C++中右移想补什么就补什么第10讲话类和对象所以函数是C语言的基本单位在而不是语句无论是堆还是栈,本质上都是硬件内存,模拟出来而已面向对象中把*号去掉了,因为容易出错aa本身的内存中没有i、j,aa保存的是对象的首地址,永远只占4个字节面向对象中堆与栈的区别已经没那么大了,但C/C++中堆中的内存必须手动释放第12讲访问控制符面向过程简单直接面向对象非得绕个弯接口相当于按钮通过按钮对事物进行操作面向对象中一般只提供几个按钮对事物进行操作很少能直接进行操作整个程序都很安全,就像一个黑匣子,内部的东西不需要知道也不能知道第13讲访问控制符递归是会使程序变慢但很多问题太难了解决不了必须用递归才能解决访问控制符有4种但默认default一般不用第14讲构造函数第15讲UltraEdit的使用第17讲函数的重载:函数名一样,形参C语言认定函数不能重名从C++开始就开始可以了第18讲构造函数局部变量编译器是不会自动进行初始化的,Java要求所有的局部变量在使用之前都必须初始化,即这个值在使用之前必须知道它的值不允许是垃圾值局部变量指的是函数中的而类中的是属性不属于局部变量输出0局部变量输出错误输出2和true,若构造函数修改了则按构造函数的输出第19讲this只为属性在堆中分配内存,方法是不分配的。方法是共用一块内存的。第20讲static第22讲static的两个示例这种用法很少第23讲static示例只生成一个对象第24讲继承的由来利用继承更好地模拟现实世界事物之间的关系第25讲继承的访问权限27讲Java为什么没有多继承第二28讲第29讲复习super第30讲重写父类方法调用时不知调用的是哪个,父类的还是子类的f()所以会报错Protected与public对调的话就会出错,也可以自己试试private,public,default之间的区别,但还是访问权限之间的大小的问题。低于的话多态实现不了。第31讲重写方法第32讲多态的语法知识狗与动物动物是父类aa=bb把bb当成aa,即狗是动物是可以的,但对调即动物是狗是错的第34讲多态注意事项和实际应用实例aa=bb;不能理解为把bb的值赋给aa,而是要理解成地址赋予bb=(B)aa;语法没有错但没有实际意义故运行错误,有了那一行,aa实际上已经指向B类的doublea=66.6;intb=(int)a;a的值并没有变成66,强制转换只是转换一个临时值给b上面的bb=(B)aa去掉(B)报错父类的引用只能调用子类重写父类的第35讲抽象类和final没有方法体的方法叫抽象方法,抽象方法要求末尾必须加分号,前面必须得加abstract抽象类不一定有抽象方法,有抽象方法的类一定是抽象类通过抽象类也实现了多态的知识有些人能击中靶但不是靶心第36讲接口类似抽象类静态类必须是内部类类的自我复制就是调用类中的某个方法可以造出一个对象跟它一模一样第38讲面向对象复习第39讲编译运行含有包层的类类较多,类似操作系统中的文件夹把下面的类全部打包到zhangsan.lisi的中,只有先建zhangsan的一个文件夹再建立一个lisi文件夹第40讲编译运行含有包层的类-2第41讲同包和不同包的相互访问没有定义包的话,类默认在同一个包里面青春是用来挥霍,不是让你来奋斗的,四、五十岁终于有钱了,有啥用啊都老了我们之所以要奋斗是因为我们起点较低但也不能整天在这学习。青春都浪费光了。要么不做要么做好导入包层太多了就只导入一个类第42讲复习和不同包之间的相互访问同一个包里面非私有的可以相互访问内部类才可以加private、protected,外部类不可以加第43讲复习和不同包之间的相互访问第45讲如何使用jar包和包的总回顾如何设置jar包的路径在doc命令下设置的classpath是临时的,窗口一关闭则没有了,若想长久则必须手动设置第46讲异常概述_1输出Java虚拟机的异常信息第47讲异常概第48讲复习第49讲为什么需要异常Scanner为什么不用if/else来处理异常:因为有些无法用if/else表示,就只能用try/catch来处理了类放在lang包里面的会自动导入,其他的必须手动导入第50讲printStackce方法的介绍printStackTrace产品设计好后要屏蔽这个方法,用户看不懂第51讲可处理可不处理的异常和必须得进行处理的异常C语言里面没string类型有些异常必须捕获否则程序崩溃第52讲处理异常的两种方式throws内部不处理,留给被调用者处理若main函数不写throws的话,则编译时就会报错了为什么要抛异常?层次问题,有些解决不了异常就抛给上一层处理第53讲finally(最终的)Java虚拟机先输出finally里面的内容再处理异常,那么我们为什么要使用finally第54讲自定义异常和throws常见错误分析所以的异常都是Throwable的子类,普通类不能被抛异常,必须继承Throwable/Exception,写Throwable不太好自第一异常很少用因为没有什么实际意义,不是很重要,一般不自己定义异常,一般使用别人定义好的方法。书上说throws不处理异常是给被调用者处理异常这样说是不对的即不合适,因为f()可能抛出异常而已,也可能是不必须处理的异常例如第56讲异常复习Exception里面有许多方法但较多用到的是printStackTrace,输出错误的信息和路径,用于调试程序第57讲异常子类抛异常范围不可以比父类大,是为了多态的实现,否则语法设计起来就有冲突第58讲ToString()方法介绍Aaa=newa();Println(aa);Println(aa.toString());都是输出类名和类在堆中的16进制地址(若ToString方法没有重写)基本上都会重写父类的ToString()方法,因为父类的无什么实际含义第60讲equalsString和StringBuffer:带缓冲的字符串下一字节————放一个字节到硬盘,硬盘启动较慢List可以放任何对象第61讲Set是个容器父类的equals()返回的是假,故要子类重写这个方法通过父类的引用不能调用子类的特有成员第62讲复习编译时大小写无所谓,但运行时区分第63讲第64讲String类的常用方法介绍字符串和整数的相互转化第65讲String常用方法举例3种方法第66讲printf和println的区别第67讲复习第68讲StringBufferString类中没有改变字符串本身的方法第69讲数组[]写前面后面都可以数组的长度length是属性不是方法故不需加括号第70讲线程什么叫程序线程的定义线程比较难,面试的时候可能会问但一般用不到,除非是做系统开发创建线程的第一种方法第一个一直执行,检测不到第二个故没有抛异常创建线程的第二种方法第71讲复习第72讲创建进程的第二种方式第73讲线程常用方法的介绍第74讲线程的控制Sleep()是让出CPU,下次是就绪状态Yield()是时刻准备着,下次是立即运行线程交换执行是因为时间轮片算法,每个线程最多获得CPU多少秒是固定的,而优先级别只是体现了在1秒内可能你切换过来的概率高一点而已。过了5秒不一定进入运行状态,因为进入的是阻塞状态而不是就绪状态有局限性很多线程不加while的第75讲线程同步问题的产生原因第77讲买票程序讲解Start()代表建立一个线程创建进程尽量用第二种方式publicvoidsynchronizedrun()会导致只有一个程序在卖票其他线程也新建一个str但每人都有一个第78讲闲聊王爽写的汇编非常好第79复习第80讲生产消费同步概念可以通过这种方式实现线程我们快乐是源自于别人痛苦第81讲生产消费下面的println都改成printfwhile是为了继续测试下一次,表示时刻判断是否满运行应该在程序在TestPC.java里最终停止s哪里是由什么决定的?可以通过控制时间来测试生产与消费的速度synchronized是为了控制执行pop()的时候就不能执行push();谁调用谁就霸占了调用的对象若不写this.notify()则结果为乱了this.notify(();叫醒因为执行this.wait()的,但如果对方没有因为wait()而阻塞就没有效果即不需要叫醒suspend()也是陷入阻塞但不会释放对aa的锁定this.notify();叫醒说你赶紧生产吧,但已经被我锁定你也用不了先背会这程序再自己写线程不是我们的重点但起码知道什么是线程什么是同步,面试的时候可能会考第82讲awt展望TestCom.java用户图形界面也不是重点,我们的重点是流这东西看起来很爽但其实没啥意思因为基本将来用不到Java的目的是跨平台,C#只是针对windows以后我们做得基本都是B\S的,但面试的时候要知道第83讲GUI(图形化用户界面)没学生,对面是墙,墙上贴了个美女,不知道效果怎么样。一般人没观众气场就上不来图形化用户界面/接口组件真正的组件要比这个复杂,但这样理解也没啥问题B/S架构简单地理解为只需要网页就可以了,即浏览器界面容器运行结果是啥都没有,因为没有容器,Frame是容器按Ctrl+c关掉300个像素,指的是距离整个显示器屏幕有一个综合的Testpanel_83_1.java也可以自己用setLocation来设置组件的排列和组合但很麻烦、太辛苦,不可移植Java是用布局管理器类来控制的,所以要学布局管理器布局管理器注释掉f.setLayout(null);的话Testpanel_83_2.javaCENTER改为小写则出错第84讲BorderLayout布局管理器已默认一般用这个GridLayout布局管理器(重要)f.pack();注释掉的话另外一种方法是通过set…..来设置列数是根据行数自动计算出来的这里不要写错了,写错了也要知道怎么改第85讲事件处理以后想做桌面应用程序,学swingActionListener监听器单击等事件在这个包里面添加一个鼠标单击监听器因为(1)中有许多方法而我们只需要一个方法,若采用(1)则需要重写许多方法故采用(2)这种方式添加后会自动调用内部肯定有多个线程第86讲复习张立国的书写的很不错,他也有一个视频第87讲十个按钮的设计第88讲三个文本框的相加运算示例设置文本的长度不需要设置整体的大小,因为文本框已有大小,最后通过一个pack()来设置整体的大小高级事件和低级事件ActionListener是一个低级事件潜伏拍的不错,故事情节不错@Override实现接口的话也可以用这个,因为接口就类似抽象类故通过e永远无法获得文本框的信息将整形变量封装成对象Integer是针对没有方法的整型设计的这样就可以了如何获取tf1,tf2,tf3是最大的问题设置成静态的就可以访问了第二个问题是num3如何转成字符串如何将整型变成String第四种方法其他语言或数据库也会有这些功能只是名字不同这个主程序太长了,应该模块化不能说吃那些东西死得快,要说对身体不好一个社会,无论一个人多么有钱,两个东西都是一样的,一个是空气,一个是吃饭。吃五颜六色的蔬菜,多吃蘑菇(养生)很辛苦的赚钱,在你四十岁的时候却发现身体跨了。主函数一个要非常简单直接这样的话tf1,tf2,tf3照样没法访问可以定义一个内部类,将其定义成属性不推荐但也要知道怎么用看起来很简单但很复杂的第89讲复习内部类匿名类一个类可以实现多个接口另外一种方式,参考上面,综合了这一节的,故不要理行号学习是个十分漫长的过程要有毅