zoukankan      html  css  js  c++  java
  • java学习第六天

    目标

    1、  块

    2、  GC(了解)

    3、  package import

    4、  封装

    一、块

    {}  分类

    1、普通块

    作用: 组织代码、解决变量的作用域、节约了内存。

    在同一个作用域内,不能声明同名的变量。

    2、静态块  : static {}

    使用类时,才会加载,仅加载一次

    执行的结果为:

    3、构造块: {}

    先于构造器执行,每创建一个对象执行一次。

    二、GC

    Garbage collection  垃圾回收机制

    1、程序员无权调用垃圾回收器。

    2、程序员可以通过System.gc()。通知GC运行,但是JAVA规范并不能

    保证立刻运行。

    3、finalize方法,是JAVA提供给程序员用来释放对象或资源的方法,

    但是尽量少用。

    三、package

    工作时,每个类必须存在包。

    1、作用

    组织管理、避免重名

    2、命名

    公司域名倒写com.bjsxt.功能|模块–>注意全部为小写

    注意位置:  首行、第一行,类之前

    注意:

    1)、不能时操作系统关键字和java关键字

    CON,PRN,AUX,CLOCK$,NUL,COM1,COM2,COM3,COM4,COM5,COM6,COM7,COM8,COM9,LPT1

    2)、不要定义与jdk同名包同名类

    3、完整路径 (全限定名)

    包名.类名àcom.bjsxt.oop.TestPk

    java.util.Scanner

    4、JDK常用包

    java.langà语言包

    java.utilà工具包

    java.io    àIO流

    java.sqlà操作数据库

    5、import 导入类

    方便使用类,省略包名,不用每次写完整路径

    1)、作用:

    导入后: 省略完整路径

    2)、不用导入的包

    以下包下类不用导入(自动导入,就近原则)

    1)、同包

    2)、java.lang

    3)、*

    如果使用了一个包下的多个类,

    可以使用一个限定符 *

    4)、不能同时导入同名的类

    当遇到多个包下同名的类,一个导入,其他的写完整路径。

    5)、import static

    导入一个类下静态属性、静态方法 -->必须存在访问权限

    四、封装 encapsulation

    1、目的

    高内聚低耦合达到隐藏内部细节

    2、可见性 (访问权限)

    a)、public    公开的王健林的个人信息

    b)、protected受保护遗产儿子使用à在子类中且子类自己使用

    c)、default   默认的宝马儿子家人

    b)、private   私有的王健林的情书

    访问权限依次缩小:

    本类               private default protected public

    同包类(包括子类)          default protected public

    不同包的子类                    protected public

    不同包的其他类                           public

    1)、类:  public  default

    2)、方法: privatedefault protected public

    3)、属性:privatedefault protected public

    3、javabean( PO BO VO)

    1)、作用: 封装的私有数据,对外提供大量的公共setter(存储)与getter(获取)访问器,少量的其他方法。

    2)、属性私有化

    3)、访问器: setXxxgetXxx

    命名规范

    不允许出现第一个字母大写第二个字母小写的情况。

    示例如下:

    4、单例设计模式

    目标: 一个类对外只有一个对象。

    packagecom.bjsxt.encapsulation;

    /**

     * 饿汉式单例设计模式

     * 1、构造器私有化-->避免外部new调用构造器

     * 2、对外提供公共的静态方法获取一个对象

     * 3、编写一个静态属性,实例化该对象

     * @author Administrator

     *

     */

    publicclassEagerSingleton {

        //提供静态属性,实例化该对象

        privatestaticEagerSingletones =newEagerSingleton();

        //构造器私有化

        privateEagerSingleton(){       

        }  

        //对外提供公共的静态方法获取该对象

        publicstaticEagerSingletongetInstance(){       

            returnes;

        }  

    }

    packagecom.bjsxt.encapsulation;

    /**

     * 懒汉式单例设计模式

     * 1、构造器私有化-->避免外部new调用构造器

     * 2、对外提供公共的静态方法,第一次获取时创建对象

     * 3、编写一个静态属性,不实例化该对象

     * @author Administrator

     *

     */

    publicclassLazySingleton {

        //提供静态属性,不实例化该对象

        privatestaticLazySingletones

        //构造器私有化

        privateLazySingleton(){    

        }  

        //对外提供公共的静态方法获取该对象

        publicstaticLazySingletongetInstance(){    

            if(es ==null){ //如果第一次访问

                es =newLazySingleton();

            }

            returnes;

        }  

    }

             

  • 相关阅读:
    Redis持久化机制
    Java动态代理
    FFmpeg视频处理
    Redis集群
    解决vscode无法提示golang的问题
    解决vscode无法安装golang相关插件的问题
    近期小结
    近期小结
    稍稍解读下ThreadPoolExecutor
    响应式编程笔记三:一个简单的HTTP服务器
  • 原文地址:https://www.cnblogs.com/yuyufeng/p/5313984.html
Copyright © 2011-2022 走看看