对于Java代码块(详解)
【1】类的组成:属性,方法,构造器,代码块,内部类【2】代码块分类:普通块,构造块,静态块,同步块(多线程)【3】代码:public class Test { //属性 int a; static int sa; //方法 public void a(){ System.out.println("-----a"); { //普通块限制了局部变量的作用范围 System.out.pri
Java封装(Encapsulation)-详解
【1】生活案例:ATM , 电线【2】Java中封装的理解:将某些东西进行隐藏,然后提供相应的方式进行获取。我们程序设计追求“高内聚,低耦合”。➢高内聚:类的内部数据操作细节自己完成,不允许外部干涉;➢低耦合:仅对外暴露少量的方法用于使用。隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用,从而提高系统的可扩展性、可维护性。通俗的说,把该隐藏的隐藏起来,该暴露的暴露出来。这就是封装性的设计思想。【3】封装的好处:提高代码的安全性【4】代码:通过一个属性感受封装:publi
对于Java final(详解)
【1】修饰变量;public class Test { //这是一个main方法,是程序的入口: public static void main(String[] args) { //第1种情况: //final修饰一个变量,变量的值不可以改变,这个变量也变成了一个字符常量,约定俗称的规定:名字大写 final int A = 10;//final修饰基本数据类型 //A = 20; 报错:不可以修改值 //第
Java抽象类,抽象方法(详解,含面试题)
【1】抽象类和抽象方法的关系:抽象类中可以定义0-n个抽象方法。【2】抽象类作用:在抽象类中定义抽象方法,目的是为了为子类提供一个通用的模板,子类可以在模板的基础上进行开发,先重写父类的抽象方法,然后可以扩展子类自己的内容。抽象类设计避免了子类设计的随意性,通过抽象类,子类的设计变得更加严格,进行某些程度上的限制。使子类更加的通用。【3】代码:;//4.一个类中如果有方法是抽象方法,那么这个类也要变成一个抽象类。//5.一个抽象类中可以有0-n个抽象方法public abstract cla
对于Java接口(详解)
【1】接口声明格式:[访问修饰符] interface 接口名 [extends 父接口1,父接口2…] { 常量定义; 方法定义;}【2】代码:/** * 1.类是类,接口是接口,它们是同一层次的概念。 * 2.接口中没有构造器 * 3.接口如何声明:interface * 4.在JDK1.8之前,接口中只有两部分内容: * (1)常量:固定修饰符:public static final * (2)抽象方法:固定修饰符:pu
JDK1.8以后的接口新增内容
在JDK1.8之前,接口中只有两部分内容:(1)常量:固定修饰符:public static final(2)抽象方法:固定修饰符:public abstract在JDK1.8之后,新增非抽象方法:(1)被public default修饰的非抽象方法:注意1:default修饰符必须要加上,否则出错注意2:实现类中要是想重写接口中的非抽象方法,那么default修饰符必须不能加,否则出错。public interface TestInterface { //常量: public
Java成员内部类(详解)
/** * 1.类的组成:属性,方法,构造器,代码块(普通块,静态块,构造块,同步块),内部类 * 2.一个类TestOuter的内部的类SubTest叫内部类, 内部类 :SubTest 外部类:TestOuter * 3.内部类:成员内部类 (静态的,非静态的) 和 局部内部类(位置:方法内,块内,构造器内) * 4.成员内部类: * 里面属性,方法,构造器等 * 修饰符:private,default,protect,public,final,abstract *
二维数组的初始化(详解)
数组的初始化方式总共有三种:静态初始化、动态初始化、默认初始化。静态初始化除了用new关键字来产生数组以外,还可以直接在定义数组的同时就为数组元素分配空间并赋值。eg:int[][] arr = {{1,2},{4,5,6},{4,5,6,7,8,9,9}};int[][] arr =new int[][] {{1,2},{4,5,6},{4,5,6,7,8,9,9}};动态初始化数组定义与为数组元素分配空间并赋值的操作分开进行。eg:int[][] arr = new int[3][]
C#中StringBuild类的使用
**对象的获得**获得一个空的StringBuilder对象StringBuilder sb对象= new StringBuilder();visual studio效果:控制台效果:获得一个有初始值的StringBuilder对象StringBuilder sb对象= new StringBuilder("hello c#");visual studio效果图:控制台效果图:**转换为字符串**String 变量 = sb对象.ToString();**
Java面试题原理和底层
1. HashSet底层原理基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,hashset实现简单,hashset操作是调用底层hashmap的方法。默认初始一个容量未16负载因子为0.75的hashmap。2. HashMap底层原理HashMap是基于哈希表的Map接口的非同步实现。允许使用null值和null键。无序。HashMap数据结构“数组+链表+红黑树”。3. synchronized底层如何实现?锁优化,怎么优化?synchronized 是Jav
SqlDataAdapter用法
SqlDataAdapter用法 SqlDataAdapter和SqlCommand区别: SqlCommand就是是命令了,可以用它来执行SQL命令; SqlDataAdapter就是数据适配器了,它是用于在数据源和数据集之间通讯的一组对象; SqlCommand对应DateReader; SqlDataAdapter对应DataSet; SqlCommand是C#中与Sql数据库打交道的对象,几乎所有的Sql数据库操作都需要使用该对象来实现,但其功能有限,只是简单的实现了与Sql
hyper-v用不了解决
我找到也有同样的问题,出现这个问题的时候,我的hyper-v也用不了卸载 windwos Sandbox重启打开命令提示符(管理员) 执行下面 bcdedit /set hypervisorlaunchtype Auto卸载hyper-v重启安装hyper-v重启,发现hyper-v可以运行安装windwos Sandbox重启, 发现可以用Sandbox...
今日推荐
周排行