static

static关键字

给你一囗甜甜゛ 提交于 2020-02-17 00:55:41
static:静态的 static可以修饰成员变量,称为静态变量,在方法区 标准使用方式:类名.静态变量名 另一种使用方式:对象名.静态变量名 static可以修饰成员方法 ,称为静态方法 标准使用方式:类名.方法名() 另一种使用方式:对象名.方法名() public class Student { String name ; //name与age称为成员变量,在堆 int age ; static String school ; //静态变量,而且在方法区 public void show ( ) { //成员方法 } public static void fun ( ) { //静态方法 } } public class TestStudent { public static void main ( String [ ] args ) { Student . school = "北京大学" ; //静态变量的使用方法,是 类名.静态变量名 //Student.name="张三"; //成员变量 Student stu = new Student ( ) ; stu . name = "张三" ; stu . school = "清华大学" ; //不报错,但是会警告 Student . fun ( ) ; //静态方法, 类名.方法名 //Student.show();/

SpringBoot整合WEB开发--(二)静态资源访问

拈花ヽ惹草 提交于 2020-02-16 16:31:52
1.默认策略: 静态资源的位置一共5个,开发者可以将静态资源放到其中任意一个,分别是: "classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/", "/"。   这5个位置是按优先级排列的,若过放入相同资源比如图片,按照优先级依次往下查找,IDEA创建SpringBoot项目后,默认创建"classpath:/static/",将静态资源文件放在里面就行了,不需要在创建其他的文件夹。 当把/META-INF/resources/下的文件删除后,他将访问resources下的同名文件: 2.自定义策略:   要是想自定义静态资源过滤策略,有两种方式:     2.1在配置文件中 :application.properties spring.mvc.static-path-pattern=/static/** spring.resources.static-locations=classpath:/static/ 过滤规则为/static/**,静态资源位置为classpath:/static/ http://localhost:8080/static/p1.png即可看到资源     2.2Java编码定义 : 书写一个配置类

构造代码块,静态代码块

佐手、 提交于 2020-02-16 14:40:53
代码块的分类 构造代码块 直接定义在中并且前面没有static关键字的代码块,不能定义在成员方法中。每次创建实例化对象的过程中都会调用构造代码块块,且构造代码块的在构造函数之前被调用。 静态代码块 在Java中用static修饰的代码块,静态代码块随着类的加载而执行,且静态代码块一定在主函数main之前执行。如果函数之中有多个静态代码块,则先定义的先执行,后定义的后执行 图片中,我们可以看到在Demo3中的main之后我们定义了一个stati修饰的代码块,程序执行时,static中的输出内容却在主函数里面的类对象创建之前执行。 相关解析 在上面的代码中,我们可以看到,在类Demo3中 ,我们分别定义了 static Demo3 demo1 = new Demo3(); static Demo3 demo2 = new Demo3(); 接着是构造代码块 { System.out.println(“构造代码块”); // 1 } 然后是静态代码块 static { System.out.println(“静态代码块”); // 2 } 接着是无参构造方法 public Demo3() { System.out.println(“构造方法”); // 3 } 程序的执行过程是先执行 static Demo3 demo1 = new Demo3(); static Demo3 demo2

Static关键字

大憨熊 提交于 2020-02-16 11:44:06
static关键字是Java中非常重要的一个关键字,主要有以下用法: 1.用来修饰成员变量,将其变为类的成员,从而实现所有对象对于该成员的共享 2.用来修饰成员方法,将其变为类方法,可以直接使用“ 类名.方法名 ”的方法调用,常用于工具类 3.静态块用法,将多个类成员放在一起初始化,使程序更加规整,而其中理解对象的初始化过程非常关键。 1.修饰成员变量 当static修饰成员变量时,该变量称为 类变量 。该类的每一个对象都共享同一个类变量的值。任何对象都可以更改该类变量的值。 定义格式: static 数据类型 变量名 ; 比如说,录入学生信息时,学生学号是唯一的,连续的,并且与录入学生的个数保持一致,这个时候可以为其设计一个sid,用来统计录入的学生的个数,这里可以定义一个静态变量numOfStu,代码如下: 注意:静态成员变量使用类名调用是没有任何问题的,没有创建对象是,可以通过类名直接使用静态成员变量 class Student { private String name ; private static String country = "中华人民共和国" ; private int sid ; //类变量,分配学生学号 private static int numOfStu = 1 ; public String getName ( ) { return name ; }

JDBC连接数据库的操作

帅比萌擦擦* 提交于 2020-02-15 10:10:51
在连接数据库之前,应该先配置好MySQL的jar包 具体操作:File=>Project Setting=>Modules 点击“+”里面的JARs or Directories,找到下载好的jar包,在点击ok JDBC连接数据库代码 import java.sql.*; public class DBUtil2 { private static final String URL = "jdbc:mysql://localhost:3306/test"; private static final String USER_NAME = "root"; private static final String PASSWORD = "132173"; private static volatile Connection connection=null; public static Connection getConnection(){ if(connection==null){ synchronized (DBUtil2.class){ if(connection==null){ try { Class.forName("com.mysql.jdbc.Driver"); System.out.println("数据库驱动加载成功"); } catch

设计模式---单例模式

亡梦爱人 提交于 2020-02-15 01:02:15
所谓单例,即使单一的实例,就是要保证对象只有一个。 单例模式:单一的实例,保证类在内存中的只有一个对象。 举例:windows的打印服务,网站计数器 java的应用:Runtime 2.如何保证类在内存中只有一个对象? A:把构造器方法私有,为了不让外界创建对象 B:在类中去创建一个对象 C:通过一个公共的访问方式给外界提供一个入口 单例模式,分饿汉式或懒汉式。 下面请看饿汉式 package cn.itcast_singleton; public class Student { //为了不让外界访问,我们把构造器方法私有 private Student(){}; //创建一个对象 //为了满足静态方法访问,这里必须加一个静态修饰符 //为了不让外界修改s对象,加私有修饰 private static Student s=new Student(); //提供一个公共的访问方式 //为了让外界直接访问,我们就给方法添加一个静态修饰符 public static Student getStudent(){ return s; } public void show(){ System.out.println("i love java"); } } package cn.itcast_singleton; public class StudentTest { public static

工厂模式(Factory Pattern)

旧街凉风 提交于 2020-02-14 17:27:02
工厂模式(Factory Pattern) 在该模式中,创建对象时不会暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 目的: 定义一个创建对象的接口,令其子类自己决定实例化哪一个类,使其创建过程延迟到子类进行。 主要解决: 接口选择的问题。 何时使用: 明确计划不同条件下创建不同的实例。 如何解决: 让其子类实现工厂接口,返回的是一个抽象的产品。 关键代码: 创建过程在子类进行。 使用场景: 1.日志记录器:用户可以选择日志记录到什么位置。 2.数据库访问:当用户不知道最后系统采用哪一类数据库,以及数据库可能有变化的时候。 3.设计一个连接服务器的框架,可以将多个协议(POP3, IMAP, HTTP)作为产品类,共同抽象出一个接口。 注意事项: 复杂对象可以使用工厂模式,简单的就直接new。因为工厂模式需要引入工厂,增加系统的开销和复杂度。 优点: 1.可以根据产品类的名称创建对象; 2.高扩展性,需要一个新的产品类的时候,直接添加一个子类就可以; 3.屏蔽产品的具体实现,只用关心产品的接口(抽象产品类)就可以。 缺点: (由优点第2点可以得出)当系统的产品类和工厂类(用于构建产品类)过多的时候,增加了系统的复杂度。 一个工厂模式的简单代码 1 /** 2 * @author: wooch 3 * @create: 2020/02/13 4 */ 5 public

OpenMP 中的线程任务调度

三世轮回 提交于 2020-02-14 17:12:07
OpenMP中任务调度主要针对并行的for循环,当循环中每次迭代的计算量不相等时,如果简单地给各个线程分配相同次数的迭代,则可能会造成各个线程计算负载的不平衡,影响程序的整体性能。 如下面的代码中,如果每个线程执行的任务数量平均分配,有的线程会结束早,有的线程结束晚: 1 #include<stdio.h> 2 #include<omp.h> 3 4 int main(){ 5 int a[100][100] = {0}; 6 #pragma omp parallel for 7 for (int i =0; i < 100; i++){ 8 for(int j = i; j < 100; j++ ) 9 a[i][j] = ((i%7)*(j%13)%23); 10 } 11 return 0; 12 } 为此,OpenMP提供了schedule子句来实现任务的调度。 schedule子句:   schedule(type[, size]),   参数type是指调度的类型,可以取值为static,dynamic,guided,runtime四种值。其中runtime允许在运行时确定调度类型,因此实际调度策略只有前面三种。   参数size表示每次调度的迭代数量,必须是整数。该参数是可选的。当type的值是runtime时,不能够使用该参数。 1.静态调度static  

Java—NumberFormat与DecimalFormat类

孤街醉人 提交于 2020-02-14 03:06:22
1.NumberFormat表示数字的格式化类 NumberFormat表示数字的格式化类,即:可以按照本地的风格习惯进行数字的显示。 No. 方法 类型 描述 1 public static Locale[] getAvailableLocales() 普通 返回所有语言环境的数组 2 public static final NumberFormat getInstance() 普通 返回当前默认语言环境的数字格式 3 public static NumberFormat getInstance(Locale inLocale) 普通 返回指定语言环境的数字格式 4 public static final NumberFormat getCurrencyInstance() 普通 返回当前缺省语言环境的通用格式 5 public static NumberFormat getCurrencyInstance(Locale inLocale) 普通 返回指定语言环境的数字格式 private static final NumberFormat CURRENCY = NumberFormat.getCurrencyInstance(); package com.pb.demo1; import java.text.NumberFormat; public class

JAVA学习笔记二

◇◆丶佛笑我妖孽 提交于 2020-02-14 01:16:53
JAVA学习笔记二 五、继承、接口和抽象类 继承extends 父类/基类/超类 parent/base/super 子类/派生类 child/derived 子类不可访问父类private成员 同名方法优先调用子类 单根继承(区别于C++):每个类只能继承一个类 默认继承java.lang.Object(所有类构成类型继承树),Object类默认有clone,equals,finalize,getClass,hashCode,toString等方法 默认super(),只有一个super(),调用父类的构造函数 抽象类和接口 类:属性(0或多个)+方法(0或多个) 一个完整的类:所有的方法都有实现(方法体) 抽象类:暂时有方法未实现 抽象类组成(类名前加abstract class): (optional)成员变量 (optional)具体方法,方法有实现 (optional)抽象方法,加abstract关键字 子类必须实现父类抽象类所有的abstract方法才能成为完整类! 接口类interface:所有方法均未实现 P.s.方法不需要加abstract 一个类只可以继承(extends)一个类,但是可以实现(implements)多个接口,继承和实现可以同时。 P.s.弥补单根继承的不足 接口可以继承多个接口,没有实现的方法将会叠加。 没有全部实现方法,就是抽象类。