随笔分类 - java基础学习
java的基础内容,包括集合、IO流、多线程、网络编程、反射、面向对象和jdbc数据库等知识。
摘要:1.为什么使用反射? java中反射是在运行中动态的加载进入。有个很大的好处就是可以节省很多资源。为什么这么说呢,首先我们来说一下jvm,jvm是java的虚拟机,java之所以支持跨平台就是因为java虚拟机的存在。程序你有如下语句 Object o=new Object();运行起来的时候,ja
阅读全文
摘要:虚拟机类加载机制 1.什么是类的加载机制? 虚拟机把描述类的数据从class文件中存储到内存中,并对数据进行校验、转换解析、初始化的操作,最后形成可以被虚拟机直接使用的java类型,这就是类的加载机制。 2.什么时候类被加载? 类被加载到虚拟机后,到被卸载出内存,整个生命周期包括加载、校验、准备、解
阅读全文
摘要:一.JMM中的主内存和工作内存 主内存:主要是存储线程要读取的数据,如实例字段、静态字段和数组元素,局部变量和形参不存储在主存。 工作内存:每一个线程都有自己的工作内存,工作内存存储从主存中copy的一份副本,线程只能操作工作内存中的数据,不能直接操作主存中的数据。不同线程之间也无法访问其它线程的工
阅读全文
摘要:一.虚拟机的构成 虚拟结主要由运行时数据区、执行引擎、类加载器三者构成: 而我们所说的JVM内存模型指的就是运行时数据区,下面具体分析一下运行时数据区: 二.运行时数据区组成和各个区域的作用 我们看到运行时数据区可以分为线程共享和线程不共享两部分,其中堆内存和方法区线程共享,本地方法栈、虚拟机栈、程
阅读全文
摘要:finally对try...catch的影响和执行时间 一.finally语句不被执行的两种情况 我们在学习抛出异常的时候学习到了finally语句块,这个语句块一般会被执行,但是有两种情况下不被执行 1.如果try语句或者catch语句里存在强制退出语句System.exit(0),代表虚拟机被终
阅读全文
摘要:集合框架可以分为两个部分:Collection和Map,详细的框架图如下: 我们先来分析一下Collection集合框架,Collection包括两大体系List和Set,其中List中的元素存取有序、元素可重复、有索引,可以根据索引获取值,Set的元素存取无序、不能存储重复元素。 List下面有有
阅读全文
摘要:两种情况:如果是基本数据类型,被final修饰的变量一旦初始化就不能改变;如果是引用数据类型的变量,初始化之后不能指向另外一个对象。 基本数据类型: 我们看到上面的代码a是final类型的,但是没有被初始化,所以可以给a赋值。如果a被初始化,a存储的值就不能改变了,示例如下。 如果是引用数据类型 运
阅读全文
摘要:sleep()方法是属于Thread类的,wait()方法属于Object类。sleep()方法导致线程睡眠一段时间,让出cpu给其他线程,但是该线程依然处于被监控状态,并没有释放对象的锁,所以线程睡眠期间,其他线程不能获得该对象的锁,不能对该对象的其他同步方法进行调用。 wait()方法被调用会导
阅读全文
摘要:继承的主要作用:我们使用继承主要是为了避免出现重复的定义,程序中如果出现多个地方有相同的定义,可以把相同程序提取出来定义为父类。 子类继承父类使用extends关键字,子类具备父类所有的属性和方法,包括私有方法,只不过子类对父类的私有方法和成员没有访问权限,除非父类对外提供了访问的接口(get、se
阅读全文
摘要:1.打包基本类型 java中的基本类型要想像对象一样使用,需要被打包器打包,打包器有Long、Integer、Double、Float、Boolean、Byte。 上面的打包器对象integer1调用doubleValue()方法,变为double类型,运算结果为3.3333333333. 2.自动
阅读全文
摘要:变量的作用: 存储资料。 变量的命名规范:不能使用数字开头,不能使用关键字,不能使用保留字,不能使用一些特殊字符(%,*,&)等。 变量命名风格:驼峰式命名方法 开头字母小写,后面的首字母大写。 当我们在声明一个变量时,会给变量分配内存,但是如果变量没有赋值,就不知道内存中存储的是什么,我们在使用变
阅读全文
摘要:String类使我们经常使用的一个类,经常用来表示字符串常量。 字符串一旦被创建赋值,就不能被改变,因为String 底层是数组实现的,且被定义成final类型。我们可以看String源码。 String的创建方式有多种,其中最常见的是直接创建和new创建 直接创建:String a=“佛挡杀佛”;
阅读全文
摘要:==可以用来比较基本数据类型和引用数据类型,在进行基本数据类型的比较时,比较的具体的值,进行引用数据类型比较,比较的是引用指向对象在内存中的地址,但是String进行比较需要注意 结果为true,false 因为String直接赋值,值会存放在常量池中。 但是使用equals进行比较,比较的是对象内
阅读全文
摘要:在类型转换的总结中,我们说过不能让浮点数进行等级运算,这样会出现误差。比如1.0-0.8,答案不是0.2,而是0.199999999999999996,为什么?这是java遵守IEEE754浮点运算规范的结果。 例如我们0.5会使用1/2表示,0.75会使用1/2+1/4表示,0.1会使用1/16+
阅读全文
摘要:概念:java中用补码表示二进制数,补码的最高位是符号位,最高位为“0”表示正数,最高位为“1”表示负数。正数补码为其本身;负数补码为其绝对值各位取反加1;例如:+21,其二进制表示形式是00010101,则其补码同样为00010101-21,按照概念其绝对值为00010101,各位取反为11101
阅读全文
摘要:数据类型有基本数据类型和引用数据类型 基本数据类型有byte、short、int、long、char、float、double以及布尔类型 占用内存字节数分别是1、4、8、16、2、4、8,布尔类型不必在意字节长度,因为不参与运算。 要点一:在程序中写下一个浮点数时,编译器默认使用double类型。
阅读全文
摘要:this关键字 this关键字的作用有 1.调用本类的成员变量 2.调用本类的构造方法,但是要放在第一行 3.调用本类中的成员方法,不过没有必要,如果用了,必是真爱。 4.最实用的一条,可以当做当前对象的引用 2.static关键字 被static修饰的变量被类的所有对象共享,第一次被使用的时候进行
阅读全文

浙公网安备 33010602011771号