构造方法

ThreadPoolExecutor

懵懂的女人 提交于 2019-11-28 22:57:36
ThreadPoolExecutor 类详解 一.线程池介绍 二.线程池的创建方式 三.ThreadPoolExecutor创建线程池 3.1ThreadPoolExecutor线程池的构造方法 3.2 线程池构造方法的参数 3.3 execute方法详解 3.3.1再看execute方法前先了解一下几个参数 3.3.2下面看execute方法 3.2.3 Worker类 3.4 ThreadPoolExecutor类中其他常用方法 四 结束 一.线程池介绍 相信每个了解过Java线程的程序员都知道在高并发的应用程序中为了提高程序的效率,以及充分利用 机器CPU,大都会选择多线程来提高程序的执行效率( 当然也并不是所有的场景使用多线程都会提高程序性能 ),但是我们也知道频繁的创建线程,销毁线程都会消耗时间,那么有没有一种方法可以避免这样频繁的创建和销毁线程呢;当然是有的,这就是我们本片文章的主角线程池,线程池的主要作用就是创建一个承载线程的容器,而使用这个容器去管理这些线程的生命周期, 当线程池里面的线程执行完任务时并不会马上销毁,而是可以继续执行其他任务,这样就大大提高了线程的执行效率,避免了频繁创建和销毁线程的消耗。 二.线程池的创建方式 Java中创建线程主要有两种方式 1.使用Exector类的静态方法创建 2.使用ThreadPoolExecutor创建

Java面向对象——构造方法

。_饼干妹妹 提交于 2019-11-28 22:47:52
构造方法 构造方法是专门用来创建对象的方法,当我们通过关键字new来创建对象时,其实就是在调用构造方法。 格式: public 类名称(参数类型 参数名称) { 方法体 } 注意事项 构造方法的名称必须和所在的类名称完全一样,就连大小写也要一样 构造方法不要写返回值类型,连void都不写 构造方法不能return一个具体的返回值 如果没有编写任何构造方法,那么编译器将会默认赠送一个构造方法,没有参数、方法体什么事情都不做。 public Student() {} 一旦编写了至少一个构造方法,那么编译器将不再赠送。 构造方法也是可以进行重载的。 重载:方法名称相同,参数列表不同。 public class Student { // 成员变量 private String name ; private int age ; // 无参数的构造方法 public Student ( ) { System . out . println ( "无参构造方法执行啦!" ) ; } // 全参数的构造方法 public Student ( String name , int age ) { System . out . println ( "全参构造方法执行啦!" ) ; this . name = name ; this . age = age ; } // Getter Setter /

new一个有父类的对象时各代码块的执行顺序问题

喜你入骨 提交于 2019-11-28 22:24:52
public class QQ { public static void main(String[] args) { new B(); } } class A { static { System.out.println("A静态代码块"); } { System.out.println("A类代码块"); } public A() { System.out.println("A构造方法"); } } class B extends A { static { System.out.println("B静态代码块"); } { System.out.println("B类代码块"); } public B() { System.out.println("B构造方法"); } } # 代码执行的结果为: A静态代码块 B静态代码块 A类代码块 A构造方法 B类代码块 B构造方法 来源: https://www.cnblogs.com/lwmp/p/11430363.html

Java自学-类和对象 构造方法

纵然是瞬间 提交于 2019-11-28 22:12:50
怎么使用 Java 构造方法? 通过一个类创建一个对象,这个过程叫做 实例化 实例化是通过调用 构造方法 (又叫做 构造器 )实现的 步骤 1 : 什么是构造方法 方法名和类名一样(包括大小写) 没有返回类型 实例化一个对象的时候,必然调用构造方法 public class Hero { String name; float hp; float armor; int moveSpeed; // 方法名和类名一样(包括大小写) // 没有返回类型 public Hero() { System.out.println("实例化一个对象的时候,必然调用构造方法"); } public static void main(String[] args) { //实例化一个对象的时候,必然调用构造方法 Hero h = new Hero(); } } 步骤 2 : 隐式的构造方法 Hero类的构造方法是 public Hero(){ } 这个无参的构造方法,如果不写,就会默认提供一个 public class Hero { String name; //姓名 float hp; //血量 float armor; //护甲 int moveSpeed; //移动速度 //这个无参的构造方法,如果不写, //就会默认提供一个无参的构造方法 // public Hero(){ // System

Java中类的加载顺序介绍(ClassLoader)

不问归期 提交于 2019-11-28 20:43:54
Java中类的加载顺序介绍(ClassLoader) 1、ClassNotFoundExcetpion   我们在开发中,经常可以遇见java.lang.ClassNotFoundExcetpion这个异常,今天我就来总结一下这个问题。对于这个异常,它实质涉及到了java技术体系中的类加载。 Java的类加载机制 是技术体系中比较核心的部分,虽然它和我们直接打交道不多,但是对其背后的机理有一定理解有助于我们排查程序中出现的类加载失败等技术问题。 2、类的加载过程  一个java文件从 被加载到被卸载 这个生命过程,总共要经历 5个 阶段,JVM将类加载过程分为: (加链初使卸)    加载->链接(验证+准备+解析)->初始化(使用前的准备)->使用->卸载 (1)加载   首先通过一个类的 全限定名 来获取此类的 二进制字节流 ;其次将这个字节流所代表的 静态存储结构 转化为方法区的运行时 数据结构 ;最后在 java堆 中生成一个 代表这个类的Class 对象,作为方法区这些数据的访问入口。总的来说就是 查找并加载类的二进制数据 。 (2)链接:   验证:确保被加载类的 正确性 ;   准备:为类的静态变量 分配内存 ,并将其初始化为默认值;   解析:把类中的符号引用转换为 直接引用 ; (3)为类的静态变量赋予正确的 初始值 3、类的初始化 (1)类 什么时候 才被初始化

java反射(三)--反射与操作类

人走茶凉 提交于 2019-11-28 20:39:27
一.反射与操作类   在反射机制的处理过程之中不仅仅只是一个实例化对象的处理操作,更多的情况下还有类的组成的操作,任何一个类的基本组成结构:父类(父接口),包,属性,方法(构造方法,普通方法) --获取类的基本信息   一个类的基本信息主要包括的是所在的包名称,父类的定义,父接口的定义. --范例:定义一个程序类 1 package 反射.反射与操作类; 2 3 /** 4 * @author : S K Y 5 * @version :0.0.1 6 */ 7 public interface IMessageStrvice { //消息服务 8 void send(); 9 } 1 package 反射.反射与操作类; 2 3 /** 4 * @author : S K Y 5 * @version :0.0.1 6 */ 7 public interface IChannelService { 8 boolean connect(); 9 } 1 package 反射.反射与操作类; 2 3 /** 4 * @author : S K Y 5 * @version :0.0.1 6 */ 7 public class AbstractBase { 8 } 1 package 反射.反射与操作类; 2 3 /** 4 * @author : S K Y 5 * @version

Java权限修饰符-public,private,protected

不羁的心 提交于 2019-11-28 20:09:35
最近在温习java基础,看到了修饰符,感觉这个虽然很基础,但是也有很多衍生的知识点,比如单例或者内部类这样的,所以写一遍关于权限修饰符的文章,让自己巩固一下, 基础还是特别重要的 ! 在java中有四种权限修饰符,这四种分别是public,private,protected和默认修饰符,其中,默认修饰符又称为friendly,是指在定义类或变量的时候不加任何修饰符。接下来,由我来为大家一一介绍一下这几种修饰符,首先为public: 1.public 在java中,public是指“公共的“,所以从字面意思上我们就可以大致推算出这个关键字的含义与用法了, 那就是公共的,所有人都可以有权限使用的 ,就像公园,公共厕所,我们所有人都可以使用,这就是public。 下面我们来说一下public在具体应用的范围和例子。 1.1 修饰类 对于public,我们第一次见到的时候肯定是在创建我们的第一个java工程“Hello World”的时候见到的 public class Hello{ public static void main(String[] args) { System.out.println("Hello World"); } } 在上面这个新建的Hello类中我们可以看到public同时修饰了类“public class Hello”,和方法“public static

7.31-8.6学习报告

血红的双手。 提交于 2019-11-28 18:50:56
从构建第一个java的项目,构建第一个类开始,在面向对象先导课中,从一个java的门外汉,到逐渐开始利用java完成一些小的代码,这个过程可以说是一边迎接着新的挑战,一边感受着自己的喜悦。 java第一次给我冲击的感觉,就是在一开始的时候,运用多个类和类中的方法和构造器,来使代码变得更加简洁有效。在第一次课堂练习上从静态和非静态方法的区别,和构造方法的继承,和继承的子类里的注意事项,以及父类中数据类型继承的区别,  都给了新奇的体验,也许面向对象的思想就是在这时慢慢生成了萌芽。 而java中的构造方法 则在用new初始化一个类的时候,就有效的利用了构造方法进行运算;如果new对象没有定义构造方法,那么会默认添加一个构造方法; 使用构造方法的快捷之处在于初始化对象。因为构造方法在创建对象的时候自动进行,所以一般不能够显式地调用构造方法,同时在一个类作为父类被继承的时候,构造方法是不能够直接继承的,需要通过super 学习编程不可避免地要碰到对字符串和字符串集合的操作,在java中,同样可以对字符串进行分割操作,也能对一个字符串集合进行操作, java可以改写toString方法和split方法,但是更多情况下使用Java自带的这些字符操作方法会十分的方便。   同时,Java的学习也涉及到了对文件的读取和写入等操作。在学习过程中老师鼓励我们自己动手查阅网上和各类博客上的信息,

java学习笔记day1

不打扰是莪最后的温柔 提交于 2019-11-28 17:59:11
以下纯属个人笔记,学习网站:https://www.runoob.com/java/java-object-classes.html 基础语法: 对象:是类的实例,有 状态和行为 ; 类: 一类 对象的行为和状态; 方法: 行为 ; 基本语法: 编写时,注意Java对大小写敏感 类名: 大 写字母开头,以后每个单词的首字母大写;eg:EmployeeType。 方法名: 小 写字母开头,以后每个单词的首字母大写;eg:empAge。 源文件名:类名一致,文件名的后缀为 .java 构造方法:在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须 与类同名 ,一个类可以有多个构造方法。 public class PrimitiveTypeTest { public PrimitiveTypeTest(){ } } 创建对象:   对象是根据类创建的, 在Java中,使用关键字new来创建一个新的对象。创建对象需要以下三步: 声明 :声明一个对象,包括对象名称和对象类型。 实例化 :使用关键字new来创建一个对象。 初始化 :使用new创建对象时,会调用构造方法初始化对象。 下面是一个创建对象的例子: public class Puppy{ public Puppy(String name){ //这个构造器仅有一个参数:name System.out.println(

从源码了解String,StringBuffer和StringBuuilder

不打扰是莪最后的温柔 提交于 2019-11-28 17:50:00
1.String (1)类定义 public final class String implements java.io.Serializable, Comparable<String>, CharSequence String类是个final类,实现了序列化接口,比较大小接口和只读字符序列接口。String和其他八个基本数据类型的包装类共同为不可变类。 (2)主要变量 private final char value[]; String类的底层基本是char类型数组,String的一些基本方法也是调用char数组的基本方法。 (3)主要构造方法 public String() {   this.value = "".value; } String的默认值为""; (4)String常量池 jvm在启动时就会加载的一块空间,符串常量池的特点就是有且只有一份相同的字面量,如果有其它相同的字面量,jvm则返回这个字面量的引用,如果没有相同的字面量,则在字符串常量池创建这个字面量并返回它的引用。通过使用new关键字得对象会放在堆里,而不会加载到字符串常量池,intern()方法能使一个位于堆中的字符串在运行期间动态地加入到字符串常量池中。 (5)字符串拼接 String字符串拼接一般通过用+号实现,正常情况下有两种形式: String a = "ab" + "cd";