黑马程序员-----一些杂类知识
来源:互联网 发布:mermaid mac 编辑:程序博客网 时间:2024/06/05 09:43
------- android培训、java培训、期待与您交流! ----------
/*以下均为本人按理解手打。仅代表个人观点,如果有错误请联系我加以改成。谢谢!无任何拷贝,摘抄等行为,转载请注明地址*/
一、单例设计模式:
class personal//饿汉式{private personal(){}static personal p = new personal();public static personal getObject(){return p;}}class personal_1 //懒汉式{private personal_1(){}static personal_1 p = null;public static personal_1 getObj(){if(p==null)p = new personal_1();return p;}}class day067//主函数体{public static void main(String[] args){personal s = personal.getObject();personal_1 s1 = personal_1.getObj();}}
简单介绍:
饿汉式设计模式,简单来说就是代码简单,效率高,提前创建好本类对象当主函数调用时直接返回对象。
懒汉式,功能作用和饿汉式一样,但是区别在于内存中的创建先后顺序及安全性。懒汉式在函数调用的时候才创建对象并返回对象。而且在多核CPU中处理数据也不安全。虽然几率比较小,但是要以防万一。尽量避免使用懒汉式这种定义方式。
总结:以后尽量使用饿汉式单例设计模式。在返回对象时尽量采用这种代码紧凑的思想来编写
二、关于匿名函数
class nonameObj{int number = 1;String str = "绿色";void Change(int recv){for(int i=1;i<recv;i++){number = i;System.out.print("我是匿名函数,我循环了" + i + "次!\n");}if(number%2 == 1)result("紫色");//把我最爱的紫色传递过去}void result(String str){System.out.print("我最爱的颜色是" + str + " 我可以改变成员变量的内容,所以说我不是没有丝毫用处!");}}class day054{public static void main(String[] args){new nonameObj().Change(22);System.out.println("-------------------------------------------");new nonameObj().Change(21);}}
代码简单介绍:
创建对象时通过new.类名的方式来创建对象,建立的对象只有短暂的生存期。并且执行到下一条语句,建立的对象便会被JAVA虚拟机当垃圾内存清理掉了。但是这种定义的方式,并不一定完全没有好处,也有一定的好处在一些不必要的操作中可以节省内存。。等
匿名函数总结:在一些不必要的操作中可以使用匿名函数来完成。这种方式虽然很有局限性,但是执行完便在内存中成为垃圾给JAVA虚拟机清理掉了,节省了内 存空间。所以定义的时候想好是否还需要匿名函数做其它事情。
三、this和super的简单理解
this和super在类中的第一条语句,通常是JVM自动加上去的。一般在调用本类的成员变量、成员函数时一般省略this。除非在一些成员变量和局部变量或者全局变量,变量名称相同的时候,加上this以标示为本类成员变量。
super是访问父类的对象。当出现A,B,C三个类。B继承A,C继承B时,在C类中使用super.类名可以访问,B继承A包含B本身中的部分成员变量。当B、A有成员变量名称一样的时候,则A中的成员变量则被复写。在C类中访问的其实就是B类中的数据。
四、命令带参数运行:
class mainDemo{public static void main(String[] args){System.out.println(args.length);if(args.length == 0){System.out.println("No argments");}System.out.println(args[0]);}}class day062{public static void main(String[] args){String [] arr = {"heiheihei","2","3"};mainDemo.main(arr);}}
因为在public static void main(String[] args)中,虚拟机会自动给主函数new一个大小。所以这里我们用。参数.length就可以获取到带来的参数多少以及分别是什么。通过这种方法,可以方便执行某些命令语句,例如执行“net uesr s s /add”,这种命令。代码过于简单,就不详细说明了。
个人总结:这种带参数运行的程序,一般是黑洞洞窗口程序,没有任何窗体设计,会给不懂电脑的人带来很多不明白的问题,也许高手都喜欢用这种方式吧!反正我是喜欢这种的。简单高效,而且运行速度快,便于重新开发、添加功能。
面向对象之注意事项1:
class fu{void method1(){System.out.println("fu method1");}void method2(){System.out.println("fu method2");//2}}class zi extends fu{void method1(){System.out.println("zi method1");//1}void method3(){System.out.println("zi method3");//3}}class day084{public static void main(String[] args){fu f = new zi();f.method1();f.method2();//f.method3();}}
程序简单介绍:
本程序在面向对象时进行测试JAVA虚拟机运行时的重写、覆盖。
当取消最后一行注释时,编译不能通过,故先加上注释。
程序运行结论:在取消最后一行语句注释时,编译不能通过是由于父类没有method3这个函数。但是我new 的是子类并不是父类,所以先加上注释。然后编译运行出现zi method1和fu method2运行结果。所以得出结论。
用父类new子类对象编译时虚拟机会检查父类是否存在该类。没有则编译不通过。当子类创建后,子类会覆盖父类的同名函数。当然需要有权限private就不说了。你懂得。
成员型变量和非静态函数这里不做考虑在内。
- 黑马程序员-----一些杂类知识
- 黑马程序员_类的一些边缘知识
- 黑马程序员--关于一些零碎的知识
- 黑马程序员-- 一些零碎的知识
- 黑马程序员-Oracle 触发器的一些知识
- 黑马程序员 反射一些知识应用
- 黑马程序员_Map集合练习和工具类以及一些新的知识
- 黑马程序员:java中集合的一些小知识
- 黑马程序员 关于内部类的一些知识总结
- 黑马程序员 接口的一些必须了解的知识
- 黑马程序员--C#中字符串的一些知识小结
- 黑马程序员 初学IO的一些小知识解读
- 黑马程序员-c语言数组的一些知识温故
- 黑马程序员_代理类知识总结
- 黑马程序员_类相关知识
- 黑马程序员--String类的知识
- 《黑马程序员》知识积累
- 黑马程序员String知识
- NYOJ118 修路方案
- ACM Steps_Chapter Two_Section3
- 自己写android java 小程序 执行sh命令
- 面试中常出现的两个Hibernate面试题及解答
- 智能指针
- 黑马程序员-----一些杂类知识
- 重温Android——调节屏幕亮度
- 水仙花数
- Maven深入学习(一)- 坐标
- hdu 2143 box
- android开发:全屏和退出全屏
- Struts+Spring+Hibernate连接数据库的三个方法
- 博文
- eclipse快捷键