静态函数

Java:构造代码块,静态代码块

匿名 (未验证) 提交于 2019-12-02 21:53:32
本文内容: 局部代码块 构造代码块 静态代码块 补充 局部代码块: 局部代码块用于限制变量的生命周期 ,如果希望某些变量在某一过程之后直接失效而不希望被后面继续操作时,可以使用局部变量来限制变量的生命周期带局部代码块中 构造代码块: 构造函数只对 对应 的对象进行初始化,构造代码块给 类的所有对象 进行初始化。 由于构造代码块给 类的所有对象 进行初始化,所以对于每个对象都要初始化成一样值的变量,可以防止构造代码块中初始化。 class Person{ String gender; int age; { //构造代码块 System.out.println("构造代码块运行阶段"); gender="男"; } Person(){//构造函数 System.out.println("构造函数Person()运行阶段"); } Person(int age){//构造函数 System.out.println("构造函数Person(int age)运行阶段"); this.age=age; } } public class Demo { public static void main(String[] args) { Person p1=new Person(); System.out.println(p1.gender); Person p2=new Person(18);

Java学习笔记【保持更新】

匿名 (未验证) 提交于 2019-12-02 21:52:03
主要参考资料:https://www.bilibili.com/video/av56034035; https://www.bilibili.com/video/av61604219 本文仅用于学习,如有侵权,请联系我,一定删除 语言特性 由C和C++继承了许多成分,变量声明、操作符、参数传递和控制流程等完全相同。 纯粹的面向对象 舍弃了指针(以引用取代)、运算符重载、多重继承等 增加了垃圾回收、泛型编程、类型安全的枚举、不定长参数和自动装/拆箱 易学 分布式 健壮 :丢弃指针,自动回收(免去了程序员忘记回收的问题) 开源社区成熟 解释型 原生多线程 JAVA技术平台 SE:俗称核心JAVA JAVA学习流程 Java是一个统称 包含javase 与Javaee(还有一个几乎没人用的javame) 是Sun公司,也就是现在的Oracle(把Sun给收购了)公司的一门面向对象的开源语言。 javase 是java的一部分,也是基础的基础,主要是用来做桌面程序的,就像我们平时下载用的那些软件,也就是楼上说的那些客户端程序。但是用Java做软件的话,前途不明朗。 jsp 是一种动态的页面,运行于服务器(tomcat、 jboss等),里面可以嵌套有html 或javase、Javascript的代码。 至于javaweb那就大了,它包含了以上所有的东西,并且还有一些框架(例如

Java实习生面试题整理

匿名 (未验证) 提交于 2019-12-02 20:48:41
一、数据类型 包装类型 八个基本类型: boolean/1 byte/8 char/16 short/16 int/32 float/32 long/64 double/64 基本类型都有对应的包装类型,基本类型与其对应的包装类型之间的赋值使用自动装箱与拆箱完成。 ? 1 2 Integer x = 2 // 装箱 int // 拆箱 缓存池 new Integer(123) 与 Integer.valueOf(123) 的区别在于: new Integer(123) 每次都会新建一个对象 Integer.valueOf(123) 会使用缓存池中的对象,多次调用会取得同一个对象的引用。 ? 1 2 3 4 5 6 Integer x = new Integer( 123 ); Integer y = new Integer( 123 ); // false Integer z = Integer.valueOf( 123 ); Integer k = Integer.valueOf( 123 ); // true valueOf() 方法的实现比较简单,就是先判断值是否在缓存池中,如果在的话就直接返回缓存池的内容。 ? 1 2 3 4 5 public static Integer valueOf( int i) { if (i >= IntegerCache.low && i <

Java实习生面试题整理

匿名 (未验证) 提交于 2019-12-02 20:41:15
一、数据类型 包装类型 八个基本类型: boolean/1 byte/8 char/16 short/16 int/32 float/32 long/64 double/64 基本类型都有对应的包装类型,基本类型与其对应的包装类型之间的赋值使用自动装箱与拆箱完成。 Integer x = 2; // 装箱 int y = x; // 拆箱 缓存池 new Integer(123) 与 Integer.valueOf(123) 的区别在于: new Integer(123) 每次都会新建一个对象 Integer.valueOf(123) 会使用缓存池中的对象,多次调用会取得同一个对象的引用。 Integer x = new Integer(123); Integer y = new Integer(123); System.out.println(x == y); // false Integer z = Integer.valueOf(123); Integer k = Integer.valueOf(123); System.out.println(z == k); // true valueOf() 方法的实现比较简单,就是先判断值是否在缓存池中,如果在的话就直接返回缓存池的内容。 public static Integer valueOf(int i) { if (i >=

动态库和静态库的制作与使用 【转载】原文链接https://www.cnblogs.com/WindSun/p/11287927.html

瘦欲@ 提交于 2019-12-02 19:59:12
概述 Linux操作系统支持的函数库分为静态库和动态库,动态库又称共享库。linux系统有几个重要的目录存放相应的函数库,如/lib /usr/lib。 静态函数库:   这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进可执行文件了。当然这也会成为他的缺点,因为如果静态函数库改变了,那么你的程序必须重新编译,而且体积也较大。 动态函数库:   这类库的名字一般是libxxx.so,动态库又称共享库;相对于静态函数库,动态函数库在编译的时候并没有被编译进目标代码中,你的程序执行到相关函数时才调用该函数库里的相应函数,因此动态函数库所产生的可执行文件比较小。由于函数库没有被整合进你的程序,而是程序运行时动态的申请并调用,所以程序的运行环境中必须提供相应的库。动态函数库的改变并不影响你的程序,所以动态函数库的升级比较方便。而且如果多个应用程序都要使用同一函数库,动态库就非常适合,可以减小应用程序的体积。 Linux静态函数库的创建和使用 例程add.h add.c sub.h sub.c main.c: add.h #ifndef ADD_H #define ADD_H int add(int x,int y);

(一)编写和使用静态及动态链接库

柔情痞子 提交于 2019-12-02 18:51:20
@1 编写和使用静态链接库(archive) 示例1.1: test.c: #include <stdio.h> void func(){ printf("library func\n"); } test1.c: #include <stdio.h> void func1(){ printf("library func1\n"); } app.c void main(){ func(); func1(); } 编译test.c ,test1.c, app.c为目标文件: gcc -c test.c test1.c app.c 打包为静态库: ar cr ./staticLib/libtest.a test.o test1.o 链接输出到运行目标文件: gcc -o app app.o -L./staticLib -ltest @2 编写和使用动态库(shared object) 同样使用示例1.1中的代码作为示例: gcc -c -fPIC test1.c test.c 然后将test1.o 和test.o 输出为一个动态链接库文件 gcc -shared -fPIC -o ./shareLib/libtest.so test1.o test.o ok,以上完成后,链接到输出目标: gcc -o app app.o -L./shareLib -ltest -Wl,-rpath,/

yaml基本语法 && 静态pod && pod生命周期 && pod健康检测

孤者浪人 提交于 2019-12-02 16:28:10
yaml 文件用法 https://yaml.org hrjr.yaml apiVersion: v1 kind: Pod metadata: name: hrjr-web labels: app: web spec: containers: - name: front-end image: nginx ports: - containerPort: 80 kubectl describe pod hrjr-web 19 静态 Pod 1)修改配置文件生成静态pod 2)通过url地址来生成静态pod systemctl status kubelet 配置文件路径: cd etc/systemd/system/kubelet.service.d vi 10-kubeadm.conf KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true 生成静态pod的yaml文件放置的位置: 文件在pod在,文件移走pod消失; cat <<EOF >/etc/kubernetes/manifest/static-web.yaml apiVersion: v1 kind: Pod metadata: name: static-web labels: app:

JAVA动手动脑

时间秒杀一切 提交于 2019-12-02 15:17:28
1、请运行TestStaticInitializeBlock.java示例,观察输出结果,总结出“静态初始化块的执行顺序”。静态初始化块先执行,并按照类的先后,由父类依次执行下来 class Root { static{ System.out.println("Root的静态初始化块"); } { System.out.println("Root的普通初始化块"); } public Root() { System.out.println("Root的无参数的构造器"); } } class Mid extends Root { static{ System.out.println("Mid的静态初始化块"); } { System.out.println("Mid的普通初始化块"); } public Mid() { System.out.println("Mid的无参数的构造器"); } public Mid(String msg) { //通过this调用同一类中重载的构造器 this(); System.out.println("Mid的带参数构造器,其参数值:" + msg); } } class Leaf extends Mid { static{ System.out.println("Leaf的静态初始化块"); } { System.out.println(

java知识基础篇(详细版)

自古美人都是妖i 提交于 2019-12-02 14:59:12
本文章为Java知识的基础篇,为Java知识点总结的前序部分。 1.java概述: 1991 年Sun公司的James Gosling(詹姆斯·高斯林)等人开始开发名称为 Oak的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器;1994年将Oak语言更名为Java; 2.Java的三种技术架构: JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发; JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础; JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序; 3.JDK: Java Development Kit,java的开发和运行环境,java的开发工具和jre。 4.JRE: Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。 5.配置环境变量: 是 java中 jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。 6.环境变量的配置: 1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdk

内存静态和动态分配区别

送分小仙女□ 提交于 2019-12-02 14:52:29
静态分配 ,局部变量分配,且一旦分配好,其内存大小就固定下来不能改变,在编译和链接的阶段就会分配好。 动态分配 ,就是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配是由系统根据程序的需要即时分配,且分配的大小就是程序要求的大小。 动态内存分配是哪些数据? 1.变长数组。 2.声明的指针指向一个内存,用malloc等内存分配函数申请。 内存的静态分配和动态分配的区别主要是两个: 一是 时间不同 。静态分配发生在程序编译和连接的时候。动态分配则发生在程序调入和执行的时候。 二是 空间不同 。堆都是动态分配的,没有静态分配的堆。         栈有2种分配方式:静态分配和动态分配。 静态分配是编译器完成的,比如局部变量的分配。动态分配由函数malloc进行分配。不过栈的动态分配和堆不同,他的动态分配是由编译器进行释放,无需我们手工实现。 来源: https://www.cnblogs.com/rx-ted/p/11751014.html