static关键字与代码块

双有源桥DC-DC变换器:原理、软开关与移相控制深度解析 隔离型DC-DC变换器是电力电子系统的核心部件,通过高频变压器实现电气隔离与电压匹配,保障系统安全与灵活适配。其工作原理基于功率半导体器件的开关动作,通过调制策略控制能量传输。该技术的核心价值在于实现高效、高功率密度的电能转换,并支持双向能量流动,这对于提升系统整体能效和运行灵活性至关重要。在新能源储能、电动汽车V2G及数据中心供电等场景中,双向能量流成为刚性需求,推动了如双有源桥等先进拓扑的应用。本文聚焦于双有源桥这一实现高效双向隔离变换的“明星”方案,深入剖析其利用移相控制实现软开关的机理。通过分析谐振 阅读详情

static关键字与代码块

一、static关键字

static是一个用于声明程序结构的关键字,意为“静态的”,此关键字可以用于全局属性和全局方法,主要特点是可以避免对象实例化的限制,在没有实例化对象的时候直接进行此类结构的访问。

1、静态属性

在一个类中,主要的组成就是属性和方法,而每一个对象都分别拥有各自的属性内容(不同对象的属性保存在堆内存的不同地址中)。

如果想要类中的某个属性定义为公共属性(所有对象都可以使用的属性),则可以在声明属性前加上static关键字。

package edu.blog.test21.staticTest01;

class Chinese {
    //普通成员属性
    private String name;
    private int age;
    //静态成员属性
    static String country = "中华人民共和国";

    public Chinese(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getInfo() {
        return "姓名:" + this.name + "、年龄:" + this.age + "、国家:" + this.country;
    }
}

public class TestDemo {
    public static void main(String[] args) {
        Chinese perA = new Chinese("lisi", 10);
        Chinese perB = new Chinese("wangwu", 10);

        System.out.println(perA.getInfo());
        System.out.println(perB.getInfo());

        perA.country = "伟大的中华人民共和国";
        System.out.println("--------------------------");

        System.out.println(perA.getInfo());
        System.out.println(perB.getInfo());
    }
}

/*
执行结果:
姓名:lisi、年龄:10、国家:中华人民共和国
姓名:wangwu、年龄:10、国家:中华人民共和国
--------------------------
姓名:lisi、年龄:10、国家:伟大的中华人民共和国
姓名:wangwu、年龄:10、国家:伟大的中华人民共和国
 */

本程序在Chinese类中定义了一个static类型的country属性,这样该属性就成为公共属性,该属性会保存在全局数据区中,所有的对象都可以获取到相同的对象内容,当有一个对象修改了static属性内容都会影响到此类的所有实例化对象,内存关系如下所示。

在这里插入图片描述

若country没有定义成static类型时,则每个实例化对象都会拥有此属性。

在这里插入图片描述

static描述的是全局属性,对于全局属性除了可以利用实例化对象调用外,最大的特点在于可以直接利用类名且没有实例化对象产生的情况下进行调用。

public class TestDemo {
    public static void main(String[] args) {
        System.out.println("直接访问static属性:" + Chinese.country);
        Chinese.country = "中国";

        Chinese chinese = new Chinese("lisi", 10);
        System.out.println(chinese.getInfo());

    }
}

/*
执行结果:
直接访问static属性:中华人民共和国
姓名:lisi、年龄:10、国家:中国
*/

小结:

  1. 使用static定义的属性不在堆中保存,而是保存在全局数据区;
  2. 使用static定义的属性内容表示类属性,类属性可以由类名称直接调用(虽然可以通过实例化对象调用,但是并不提倡此类格式);
  3. static属性虽然定义在类中,但是其可以在没有实例化对象的时候进行调用(普通属性保存在堆内存中,static属性保存在全局数据区中)。

在编写程序代码过程中,首要选择还是普通属性,而是否需要用static定义静态属性则根据实际需求选择。

2、静态方法

static除了可以进行属性定义之外,也可以进行方法的定义,其效果同static定义成员属性类似,即都可以在没有实例化对象时通过类名直接调用,不再赘述。

接下来我们来说一说static关键字修饰的方法和属性的访问特点:

  1. 非静态的成员方法
    • 能访问静态的成员变量
    • 能访问非静态的成员变量
    • 能访问静态的成员方法
    • 能访问非静态的成员方法
  2. 静态的成员方法
    • 能访问静态的成员变量
    • 能访问静态的成员方法

总结成一句话就是:静态成员方法只能访问静态成员。


二、代码块

代码块是在程序中使用“{}”定义起来的一段程序,而根据代码块声明位置以及声明关键字的不同,代码块可以分为:

  1. 普通代码块
  2. 构造代码块
  3. 静态代码块
  4. 同步代码块

1、普通代码块

普通代码块是定义在方法中的代码块,利用这类代码块可以解决代码在一个方法中过长导致出现重复变量定义的问题。

我们先来看一下一个例子。

package edu.blog.test21;

public class CodeBlockTestDemo01 {
    public static void main(String[] args) {
        if (true) {
            int x = 10;
            System.out.println("x:" + x);
        }

        int x = 100;
        System.out.println("x:" + x);
    }
}

/*
执行结果:
x:10
x:100
 */

我们在if语句中定义了一个变量x,由于“{}”的作用,所以该变量不会与外部的变量x产生影响。

如果我们将if语句删去,“{}”就成了一个普通代码块,这样也可以保证两个x变量不会相互影响,也就是说使用普通代码块可以将一个方法中的代码进行部分分割。

范例:定义普通代码块

package edu.blog.test21.block;

public class CodeBlockTestDemo02 {
    public static void main(String[] args) {
        {
            int x = 10;
            System.out.println("x:" + x);
        }

        int x = 100;
        System.out.println("x:" + x);
    }
}

/*
执行结果:
x:10
x:100
 */

2、构造代码块

将代码块定义在一个类中,这样就成为构造代码块,其主要的特点是在使用关键字new实例化对象进行调用。

范例:定义构造代码块

package edu.blog.test21.block;

class Person {
    public Person() {
        System.out.println("[构造器]Person类的构造器执行");
    }

    {
        System.out.println("[构造块]Person构造块执行");
    }
}

public class CodeBlockTestDemo03 {
    public static void main(String[] args) {
        new Person();
        System.out.println("-------------------------");
        new Person();
    }
}

/*
执行结果:
[构造块]Person构造块执行
[构造器]Person类的构造器执行
-------------------------
[构造块]Person构造块执行
[构造器]Person类的构造器执行
 */

通过程序的执行的结果我们发现,每一个实例化新的对象时都会调用构造块,并且构造快代码的执行优先于构造器的执行。


3、静态代码块

静态代码块也是在类中定义的,如果一个构造代码块使用了static关键字进行定义的话,那么就表示静态代码块。

静态代码块又两种情况:

  1. 在非主类中定义的静态代码块;
  2. 在主类中定义的静态代码块。

范例:在非主类中定义的静态代码块

package edu.blog.test21.block;

class Person {
    public Person() {
        System.out.println("[构造器]Person类的构造器执行");
    }

    {
        System.out.println("[构造块]Person构造块执行");
    }

    static {
        System.out.println("[静态块]Person静态块执行");
    }
}

public class CodeBlockTestDemo03 {
    public static void main(String[] args) {
        new Person();
        System.out.println("-------------------------");
        new Person();
    }
}

/*
执行结果:
[静态块]Person静态块执行
[构造块]Person构造块执行
[构造器]Person类的构造器执行
-------------------------
[构造块]Person构造块执行
[构造器]Person类的构造器执行
 */

在本程序中实例化了多个Person类对象,可以发现静态代码块优先于构造代码块执行,并且不管实例化多少个对象,静态代码块中的代码只执行一次。

Tips:利用静态代码块可以实现一些公共的初始化操作。

范例:在主类中定义的静态代码块

package edu.blog.test21.block;

class Person {
    public Person() {
        System.out.println("[构造器]Person类的构造器执行");
    }

    {
        System.out.println("[构造块]Person构造块执行");
    }

    static {
        System.out.println("[静态块]Person静态块执行");
    }
}

public class CodeBlockTestDemo03 {
    static {
        System.out.println("[静态块]主类中的静态块执行了");
        System.out.println("-------------------------");
    }

    public static void main(String[] args) {
        new Person();
        System.out.println("-------------------------");
        new Person();
    }
}

/*
执行结果:
[静态块]主类中的静态块执行了
-------------------------
[静态块]Person静态块执行
[构造块]Person构造块执行
[构造器]Person类的构造器执行
-------------------------
[构造块]Person构造块执行
[构造器]Person类的构造器执行
 */

通过程序的执行结果发现,主类中定义的静态代码块代码会优先于主方法执行。


注:此文章为个人学习笔记,若有错误,敬请指正。

【系统分析师】高分论文:论基于构件的软件开发(气象灾害影响评估系统) 本文以某手机气象灾害影响评估系统为例,探讨了基于构件技术的软件开发实践。通过分析开发中常见的功能模块重复问题,提出建立企业构件库、针对性选择构件和加强构件管理的解决方案。项目实施中成功复用登录模块等通用构件,并针对气象数据转换需求开发新构件,最终在8个月内高质量完成系统建设。文章总结了构件开发的三个关键点:构件库建设是基础、构件选择需精准、构件管理要规范。同时指出需注意全新需求开发、性能优化等问题,建议通过培训提升团队对构件的理解力。该案例证明构件技术能有效缩短周期、降低成本,为企业积累可复用的技术资产。 阅读详情

相关推荐

CAN总线错误帧全解析:从数据包到硬件层的故障树分析

本文深入解析CAN总线错误帧的故障树分析方法,从数据包到硬件层全面剖析错误机制。通过物理层信号测试、数据链路层错误解码和应用层协议排查,提供系统化的诊断框架。结合CANoe配置和示波器波形分析,帮助工程师快速定位总线故障,提升系统可靠性。

weixin_26742753的博客 488

【Java SE】static成员及代码块

【Java SE】static成员及代码块介绍,图例详细

yanxiang3306 1940

Win10系统蓝屏错误BAD SYSTEM CONFIG INFO的解决方案

BAD SYSTEM CONFIG INFO错误是Win10系统中较为常见的一种蓝屏错误,通常与系统配置文件损坏或丢失有关。本文介绍了三种有效的解决方法:使用系统修复高级选项修复、通过PE修复文件和重装新系统。用户可以根据实际情况选择合适的方法进行操作。同时,建议用户定期备份系统重要文件和数据,以防止类似问题的发生。在遇到问题时,保持冷静并耐心操作,通常可以顺利解决问题。

mmoo_python的博客 7717

Java中的static关键字

1、static的概述 当在定义类的时候,类中都会有相应的属性和方法。而属性和方法都是通过创建本类对象调用的。当在调用对象的某个方法时,这个方法没有访问到对象的特有数据时,方法创建这个对象有些多余。可是不创建对象,方法又调用不了,这时就会想,那么我们能不能不创建对象,就可以调用方法呢? 可以的,我们可以通过static关键字来实现。static它是静态修饰符,一般用来修饰类中的成员。 2、静态...

Restless Breeze 504

四十二、Fluent欧拉模型流化床模拟:从基础设置到颗粒动力学解析

本文详细解析了Fluent欧拉模型在流化床模拟中的应用,从基础概念到颗粒动力学设置全面覆盖。重点介绍了欧拉模型的颗粒温度概念、多相流配置技巧以及关键参数优化策略,帮助工程师准确模拟气固两相流动现象。通过实用案例演示了网格检查、求解器配置和边界条件设置的最佳实践。

weixin_27303545的博客 443

基于Labview2012实现的双通道信号源(课程设计)

双通道信号源,产生8种波形,能进行调制,带信号幅度与频率扫描功能,波形可存储与导入

qq_40617082的博客 1460

静态代码块、实例代码块

作用:和构造器一样,都是用来完成对象的初始化的,例如:对实例变量进行初始化赋值。>特点:类加载时自动执行,由于类只会加载一次,所以静态代码块也只会执行一次。·代码块是类的5大成分之一(成员变量、构造器、方法、代码块、内部类)。>特点:每次创建对象时,执行实例代码块,并在构造器前执行。>作用:完成类的初始化,例如:对类变量的初始化赋值。>格式: static ()

2301_77045416的博客 174

(秋招)vins中的光流法

那么下一层基于这个初值也会得到一个解,就这样进行迭代,直到达到金字塔的最底层,也即第0层,就是原始分辨率的那张图片,此时光流法就会给出一个速度值,这个值是比较可靠的(相比对原始图片直接使用光流法来说)。2.小运动,这个也必须满足,就是时间的变化不会引起位置的剧烈变化,这样灰度才能对位置求偏导(换句话说,小运动情况下我们才能用前后帧之间单位位置变化引起的灰度变化去近似灰度对位置的偏导数),这也是光流法不可或缺的假定。可以看到光流法是来估计物体运动的(估计的是物体运动的速度,根据速度再计算相对应的特征点)。

努力coding 651

static{}语句块详解

声明:转载请注明出处static{}(即static块),会在类被加载的时候执行且仅会被执行一次,一般用来初始化静态变量和调用静态方法,下面我们详细的讨论一下该语句块的特性及应用。 一、在程序的一次执行过程中,static{}语句块中的内容只被执行一次,看下面的示例:示例一class Test{ public static int X=100; publi

lubiaopan的专栏 2万+

某AI推荐系统项目管理复盘:架构师总结的6大方法论与调优策略

我是张三,某大厂资深AI架构师,主导过5个千万级用户的推荐系统项目(覆盖电商、内容、视频、音乐、外卖等场景)。我的公众号“AI架构师笔记”会分享更多AI项目管理和技术实战经验,欢迎关注。最后的话:推荐系统不是“一锤子买卖”,而是“持续优化的过程”。希望这篇文章能帮你少踩坑,多做对——毕竟,把复杂的事做成,才是架构师的核心能力。

2501_92132293的博客 361

图文:银行核心账务处理逻辑(白话篇)

银行账务系统分为对内账(记录银行自身资产负债)和对外账(处理客户交易),通过特定编码规则的账号体系进行管理。采用T型账户结构和凭证制度确保每笔交易可追溯,通过明细核算与综合核算双线并行、每日轧账核对(科目日结单、总账、日计表)实现账务精准平衡。从业务触发到最终账平的全流程体现了银行账务"分层记录、双向核对、闭环校验"的核心原则,保障资金流动的透明性与安全性。

银行信息系统应用架构详解 538

static静态初始化块

/** * @author Jsh 测试静态初始化块的使用 *(学完继承回头再看这一块) */ public class User3 { int id; String name; String pwd; static String company; static/静态块,只是一个语句块,不是方法/ { System.out.println(“执行类的初始化工作”); company = “...

weixin_45378913的博客 150

Python爬虫技术应用:体育赛事直播数据抓取与分析

Web爬虫(Web Crawling)是一种通过模拟浏览器行为从网站获取数据的技术。发送请求:发送HTTP请求(通常是GET或POST请求)获取目标网页的HTML内容。解析网页:使用解析工具(如lxml)从HTML中提取出所需要的信息。存储数据:将抓取到的数据存储到数据库、文件或数据结构中,供后续分析和使用。数据分析与展示:使用数据分析工具(如PandasMatplotlib)对数据进行处理、清洗和可视化,生成有价值的报告和图表。Requests:用于发送静态网页的HTTP请求并获取响应。

2201_76125261的博客 1309

static关键字和代码块

本文介绍了Java中static关键字和代码块的相关知识。static用于修饰成员变量和方法,被static修饰的静态成员属于类而非对象,存储在方法区且全局共享。静态方法不能直接调用非静态成员,但非静态方法可以调用静态成员。代码块部分讲解了普通代码块和静态代码块,静态代码块主要用于静态成员变量的初始化。文章通过具体代码示例展示了static的应用场景和注意事项,帮助读者理解这一重要概念。

2401_84935454的博客 785

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

一个月学会Java 第12天 剖析static关键字与普通代码块和静态代码块还有final关键字

一个月学会Java 第12天 剖析static关键字与普通代码块和静态代码块还有final关键字

XingZaiUnrivaled的博客 1042

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Java-static关键字和代码块

文章目录一、static概述二、static修饰的特点三、static关键字注意事项四、代码块1.代码块概述2.代码块分类①局部代码块②构造代码块③静态代码块 一、static概述 static关键字是静态的意思,是Java中的一个修饰符,可以修饰成员方法,成员变量。 被static修饰的成员变量,一般叫做静态变量 被static修饰的成员方法,一般叫做静态方法 二、static修饰的特点 被类的所有对象共享(因为静态的东西是放在方法区的静态区中) 是我们判断是否使用静态关键字的条件 随着类的加载

浮华′的博客 268

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

《static关键字和代码块》

通过调试得到初始化对象我们并没有得到classRoom的值是因为静态变量属于类而不是类的某个对象。构造块:定义在类中的代码块(不加修饰符)。3.如果一个类中包含多个静态代码块,在编译代码时,编译器会按照定义的先后次序依次执行(合并)2. 可以通过对象调用,也可以通过类名.静态方法名(...)方式调用,更推荐使用后者。使用static定义的代码块称为静态代码块。2. 既可以通过对象访问,也可以通过类名访问,但一般更推荐使用类名访问。静态方法也属于类而不是对象,可以直接通过类名调用,无需创建变量。

m0_73881123的博客 798

Java学习日记之11——Static关键字和代码块

Static关键字和代码块Static关键字Static关键字概述Static关键字对成员变量的作用Static关键字对成员方法的作用Static关键字的注意事项:代码块代码块简述 Static关键字 Static关键字概述 Static是一个关键字,所以必须要小写,它用于修饰成员变量和方法。 Static关键字的特点: 1.Static被所有的对象所共享 2.用static修饰的成员方法与...

Harrison_hsueh的博客 377

Java学习-static关键字、final关键字和代码块

一、static关键字 1、static关键字的基本概念 被static关键字修饰的不需要创建对象去调用,直接根据类名就可以去访问。也就是说,被 static 修饰的成员属于类,不属于单个这个类的某个对象,被类中所有对象共享,可以并且建议通过类名调用。被static 声明的成员变量属于静态成员变量,静态变量 存放在 Java 内存区域的方法区。 方法区与 Java 堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。...

jQueryZK的博客 7680

Java中static关键字和代码块的学习

本文介绍了Java中static关键字的使用,即静态成员变量和成员方法以及使用,静态与非静态成员变量和方法的对比总结 Java中的代码块介绍与最后结合代码块和构造方法后的初始化代码执行顺序的练习

记录并分享学习编程时的知识点... 2179

this,static关键字,代码块

this关键字 谁调用了这个方法,这个方法里的this就指向谁 class Person{ int age; Person(int age){ //构造方法 this.age=age; //此处的this.age指的就是上面的int age } boolean compare(Person p){ //定义了一个变量类型为boolean的方法用来比较大小 return...

ATT 183

java 静态代码块 作用域_java static关键字和代码块

static关键字为什么需要学习static关键字?针对某一个变量属于类而不属于某一个具体的对象的时候,我们可以考虑使用static关键字static概述: 多个对象共享同一份数据static的特点:static修饰变量又称为共享变量,类变量,静态变量静态成员属于某一类的,而不属于某一个具体的对象3.访问静态成员的方式:a.通过对象访问 不建议b.通过类名访问c.通过读写方法访问4.静态stati...

weixin_31090403的博客 358

static关键字&代码块

static关键字&代码块 static关键字 特点 随着类的加载而加载 优先于对象存在 被类的所有对象共享 可以通过类名调用 注意事项 在静态方法中是没有this关键字的,因为静态是随着类的加载而加载,this是随着对象的创建而存在。静态比对象先存在。 静态方法只能访问静态的成员变量和静态的成员方法 静态变量和成员变量的区别 成员变量 静态变量 所属 属于对象 属于类 内存位置 堆内存 方法区的静态区 生命周期 随着对象的创建而存在,随着对象的消失而消失 随着类的

qq_44652034的博客 196

static关键字,代码块,继承

一、static关键字 1.static关键字的特点 1.随着类的加载而加载 2.优先于对象存在 3.被类的所有对象共享 其实这个特点也是在告诉我们什么时候使用静态,如果某个成员变量是被所有对象共享的,那么它就应该定义为静态的。 4.可以通过类名调用 其实它本身也可以通过对象名调用。 推荐使用类名调用。 静态修饰的内容一般我们称其为:与类相关的,类成员 2.static的注意事项 1.在静态方法中...

Zc_orange的博客 304

Java: 关键字 final 、 static 和 构造代码块

关键字 final 和 static的作用和注意点。构造代码块的作用和使用场景,以及 和静态代码块的区别

weiweiliude2的专栏 847

【Java|基础篇】详解static关键字和代码块

本文主要讲解static关键字以及代码块的执行顺序以及各部分代码块的作用.static关键字可以用来定义类级别的变量、方法和代码块,通过类名直接访问静态成员变量和静态成员方法. 而代码块的执行顺序以及各部分代码块的作用也很重要.希望这篇文章能帮到你!专栏:《从零开始的Java学习之旅》在不断更新中,欢迎订阅!“愿与君共勉,携手共进!

云泽野の编程日记 2191
上一篇: 循循渐进详解内部类和Lambda表达式
下一篇: MySQL_1_数据库的详细安装和卸载过程(附带软件)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

窝在角落里学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值