day12-java&oracle总结

Java

java分了5片内存

1寄存器。2本地方法区。3方法区。4栈。5堆。

栈:存储的都是局部变量 ( 函数中定义的变量,函数上的参数,语句中的变量 );

    只要数据运算完成所在的区域结束,该数据就会被释放。

堆:用于存储数组和对象,也就是实体。实体就是用于封装多个数据的。

1每一个实体都有内存首地址值。

2堆内存中的变量都有默认初始化值。因为数据类型不同,值也不一样。

3垃圾回收机制。

Java中引用所占空间

在Java中,一个空Object对象的大小是8byte。

Eg:Object ob = newObject();

这样在程序中完成了一个Java对象的生命,但是它所占的空间为:4byte+8byte4byte是上面部分所说的Java中保存引用的所需要的空间。而那8byte则是Java对象的信息。因为所有的Java非基本类型的对象都需要默认继承Object对象,因此不论什么样的Java对象,其大小都必须是大于8byte

普通代码块、构造代码块、静态代码块

执行顺序:静态代码块>mian方法>构造代码块>构造方法

普通代码块

在方法或语句中出现的{}就称为普通代码块。普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行”

构造代码块

构造块:直接在类中定义且没有加static关键字的代码块称为{}构造代码块。构造代码块在创建对象时被调用,每次创建对象都会被调用,并且构造代码块的执行次序优先于类的构造函数。

public class CodeBlock02{

    {

      System.out.println("第一代码块");       

 }

   

    public CodeBlock02(){

        System.out.println("构造方法");

        }

       

        {

          System.out.println("第二构造块");        }

      public static void main(String[] args){

          new CodeBlock02();

          new CodeBlock02();

          new CodeBlock02();

          

    }

}   

 

/*

*

执行结果:

第一代码块

第二构造块

构造方法

第一代码块

第二构造块

构造方法

第一代码块

第二构造块

构造方法

*/

构造代码块和构造函数区别

构造代码块

是给所有的对象进行初始化,也就是说,所有的对象都会调用一个代码块。只要对象一建立。就会调用这个代码块。

构造函数

是给与之对应的对象进行初始化。它具有针对性。

 

静态代码块

静态代码块:在java中使用static关键字声明的代码块。静态块用于初始化类,为类的属性初始化。每个静态代码块只会执行一次。由于JVM在加载类时会执行静态代码块,所以静态代码块先于主方法执行。
如果类中包含多个静态代码块,那么将按照"先定义的代码先执行,后定义的代码后执行"。
注意:    1 静态代码块不能存在于任何方法体内。
          2 静态代码块不能直接访问静态实例变量和实例方法,需要通过类的实例对象来访问。

Eg:

class Code{
    {
      System.out.println("Code的构造块");
    }
    
    static{
        System.out.println("Code的静态代码块");
        }
        
    public Code(){
        System.out.println("Code的构造方法");
        }
    }
    
    
public class CodeBlock03{
     {
      System.out.println("CodeBlock03的构造块");    
     }
     
     static{
        System.out.println("CodeBlock03的静态代码块");        }
 
public CodeBlock03(){
System.out.println("CodeBlock03的构造方法");
  }
public static void main(String[] args){
  System.out.println("CodeBlock03的主方法");
new Code();
  new Code();
  new CodeBlock03();
  new CodeBlock03();
          }  }
/*
CodeBlock03的静态代码块
CodeBlock03的主方法
Code的静态代码块
Code的构造块
Code的构造方法
Code的构造块
Code的构造方法
CodeBlock03的构造块
CodeBlock03的构造方法
CodeBlock03的构造块
CodeBlock03的构造方法
*/

静态代码块在创建对象时会执行一次,同时访问静态变量、静态方法时也会执行。

this

代表对象。就是所在函数所属对象的引用。

this还可以用于构造函数间的调用。

调用格式:     this(实际参数);

1this对象后面跟上 .  调用的是成员属性和成员方法(一般方法);

2this对象后面跟上 () 调用的是本类中的对应参数的构造函数。

注意: 1.this()必须放在构造方法的第一行,因为构造函数是用于初始化的,所以初始化动作一定要执行。否则编译失败。

       2.this()只能调用本类的构造方法

       3.this()不能进行递归(即自己调用自己)

Static

是一个修饰符,用于修饰成员(成员变量和成员函数)。

特点:

1,想要实现对象中的共性数据的对象共享。可以将这个数据进行静态修饰。

2,被静态修饰的成员,可以直接被类名所调用也就是说,静态的成员多了一种调用方式。类名.静态方式

3,静态随着类的加载而加载。而且优先于对象存在。

 

弊端:

1,有些数据是对象特有的数据,是不可以被静态修饰的。因为那样的话,特有数据会变成对象的共享数据。这样对事物的描述就出了问题。所以,在定义静态时,必须要明确,这个数据是否是被对象所共享的。

2,静态方法只能访问静态成员,不可以访问非静态成员

因为静态方法加载时,优先于对象存在,所以没有办法访问对象中的成员。

3,静态方法中不能使用this,super关键字。

因为this代表对象,而静态在时,有可能没有对象,所以this无法使用。

4,主函数是静态的。

 

封 装(面向对象特征之一)

是指隐藏对象的属性和实现细节,仅对外提供公共访问方式

好处:将变化隔离;便于使用;提高重用性;安全性。

封装原则:将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共方法对其访问。

Private

[属性的默认类型是default]

private int age;//私有的访问权限最低,只有在本类中的访问有效。

注意:私有仅仅是封装的一种体现形式而已

私有的成员:其他类不能直接创建对象访问,所以只有通过本类对外提供具体的访问方式来完成对私有的访问,可以通过对外提供函数的形式对其进行访问。

好处:可以在函数中加入逻辑判断等操作,对数据进行判断等操作。

总结:开发时,记住,属性是用于存储数据的,直接被访问,容易出现安全隐患,所以,类中的属性通常被私有化,并对外提供公共的访问方法。

类中的属性通常被私有化,并对外提供公共的访问方法。

Oracle

构成查询语句的判断顺序:

1.      确定字段

2.      确定表

3.      确定是否有条件

4.      是否分组

5.      确定having条件

6.      排序

7.      检查语法

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值