成员变量

Java复习——基础知识

烈酒焚心 提交于 2020-01-31 00:56:28
对于 作者曹胜欢的专栏:Java程序员从笨鸟到菜鸟 https://blog.csdn.net/csh624366188/category_9260964.html?utm_source=zlmf2019 基本小结 基础知识 Java以;结尾。 Java的注释有 : // 行注释 /* / 一行或多行注释 / * */ javadoc 注释 Java合法命名规范 : 大小写字母或者美元符号或者下划线开头,不能以数字开头,不能用关键字。类名一般大写开头,变量和方法一般小写开头。 Java的基本数据类型 :byte字节(8位)1字节 、boolean布尔(1位)、char字符(16位)两字节、short短整型(16位)两字节、int整形(32位)4字节、long长整型(64位)8字节、float单精度浮点型(32位)、double双精度浮点型(64位) Java的特殊引用类型 : String 引用类型 :引用类型是一个对象类型的,他的值指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。 定义变/常量和变量的初始化 :常量需要用final 修饰 ,约定常量 一般全部使用大写字母。 switch运算符 : switch (expr) expr 必须是与int类型兼容的类型,即为byte,short,char,int其中的一个。 流程跳转语句-break

MOOC,Java类与对象

倾然丶 夕夏残阳落幕 提交于 2020-01-30 20:01:59
定义在函数内部的变量:本地变量。 定义在函数外面的变量:成员变量。 成员变量定义初始化 1、成员变量在定义的地方就可以给出初始值。 2、没有给出初始值的成员变量会自动获得0值。 3、对象变量的0值表示没有管理任何对象,也可以主动给null值 4、定义初始化可以调用函数,甚至可以使用已经定义的成员变量。 构造函数: 如果有一个成员函数的名字和类的名字完全相同,则在创建这个类的每一个 对象的时候都会自动调用这个函数——构造函数。这个函数不能有返回类型。 来源: CSDN 作者: m n x j 链接: https://blog.csdn.net/qq_38054511/article/details/104116661

面向对象和封装

时光总嘲笑我的痴心妄想 提交于 2020-01-30 15:21:40
面向对象和封装 文章目录 面向对象和封装 面向对象思想的概述 类和对象的关系 类的定义 注意事项 对象的创建及其使用 手机类练习 成员变量和局部变量的区别 封装性 练习 使用private关键字 this关键字的作用 构造方法 定义一个标准的类 面向对象思想的概述 面向过程:当需要实现一个功能的时候,每一个具体的步骤需要亲力亲为,详细处理每一个细节。 面向对象:当需要实现一个功能的时候,不关心具体步骤,找一个具有该功能的代码来完成。 示例: 题目:以[15,20,25,30,50]的样式打印出数组 import java . util . Arrays ; public class FaceTo { public static void main ( String [ ] args ) { int [ ] arrayA = { 15 , 20 , 25 , 30 , 50 } ; //面向过程 System . out . print ( "[" ) ; for ( int i = 0 ; i < arrayA . length ; i ++ ) { if ( i == arrayA . length - 1 ) { System . out . println ( arrayA [ i ] + "]" ) ; } else { System . out . print (

JAVA中的成员变量与局部变量

非 Y 不嫁゛ 提交于 2020-01-30 03:53:51
成员变量 成员变量:在类中定义的变量,分为类变量(static修饰)和实例变量(没有satic修饰); 类变量作用域:从该类开始到该类结束,作用域与该类的生存范围相同(与类本身共存亡); 实例变量作用域:从该实例对象被创建开始直至该实例对象销毁,作用域与该实例对象的生存范围相同(与实例共存亡); 1、类存在,访问该类的类变量: 类.类变量 ( Person.eyeNum); 2、实例存在,访问该类的实例变量:实例.实例变量 (p.name); 3、该类实例访问类变量:实例.类变量 ( p.eyeNum)(注意:由于该实例并不拥有类变量,所以通过实例修改类变量的值时,修改的依然是类的类变量,与通过类修改类变量的结果完全相同,修改后其他实例访问该类变量时,获取的修改后的类变量的值) eg: class Person { //定义一个实例变量 public String name ; //定义一个类变量 public static int eyeNum ; } public class PersonTest { public static void main ( String [ ] args ) { //第一次使用Person类,该类自动初始化,eyeNum变量输出为0 System . out , println ( "eyeNum变量值" + Person . eyeNum ) ;

一起学习JVM-内存结构-方法区(Method Area)(线程共享的区域)

我怕爱的太早我们不能终老 提交于 2020-01-29 09:53:49
文章目录 方法区(Method Area) 运行时常量池 StringTable(串池) 方法区(Method Area) 定义: 存储了跟类相关的信息,如:成员变量、方法、构造器及常量池等。 逻辑上是堆的一部分,但是具体的实现是不一样的。比如:oracle公司的Hotspot JVM 在1.8之前方法区的实现叫永久代,就是使用堆的一部分作为方法区。 而1.8之后方法区的实现叫元空间,使用的是本地内存也就是系统内存。 特点: 1.所有Java线程共享的区域 2.能发生outOfMemoryErrot(内存溢出) 产生方法区内存溢出的场景: 动态产生class并加载的场景:如, spring利用cglib生成的代理类,mybatis用cglib动态生成mapper接口的实现类等 在JDK1.8之前,spring、mybatis等动态生成的类还是很容易造成永久代的内存溢出。 在1.8之后,因为元空间使用的是系统内存,相对来说充裕了很多,而且垃圾回收也是由自己管理的 演示代码: 1.8 以前会导致永久代内存溢出: 注意:该代码应用于JDK1.6版本 /** * 演示永久代内存溢出 java.lang.OutOfMemoryError: PermGen space * 设置启动参数,永久代最大内存为8M: -XX:MaxPermSize=8m */ public class Demo1_6

Java 设计模式(一)反射

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-29 07:39:48
1. 概述 反射:将类的各个组成部分封装为其他对象,可以在程序运行过程中操作这些对象,还可以解耦,提高程序的可扩展性。Java反射技术应用广泛,它能配置类的全限定名、方法和参数,完成对象的初始化,甚至反射某些方法。 2.获取Class对象的方式 *  Class.forName(“全限定名”) ;将字节码文件加载进内存,返回Class对象。多用于配置文件,将类名定义在配置文件中。读取文件,加载类 *  类名.class :通过类名的属性class获取。多用于参数传递 *  对象.getClass() :getClass()在Object类中定义着的。多用于对象获取字节码格式 代码演示: package com . wanfei . domain ; /** * 创建一个Student类: */ public class Student { private String name ; private int 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 .

C++知识点汇总文档

蓝咒 提交于 2020-01-29 03:14:26
C++知识点汇总文档 持续更新 朝花夕拾. 不写下来, 仿佛一切都没了见证. 编程来源于生活, 无非是对现实的抽象. 整理这份文档的时候我才发现, 自己对C++的了解无非是冰山一角 另, C++11真的 太恐怖了 , 新"特性"真的是"恐怖如斯" 另注: 本人才疏学浅, 难免有错漏之处, 还望不吝赐教 1.基本概念 内存管理 C++中的内存划分(内容来自 博客 ): 堆 由用户使用new delete关键字管理的内存区域 栈 栈中用来存放临时变量, 比如函数中的局部变量, 在代码块结束时会自动清除 自由存储区 由malloc等分配的内存块, 他和堆是十分相似的, 不过它是用free来结束自己的生命的 全局/静态存储区 全局变量和静态变量被分配到同一块内存中 常量存储区 比较特殊的存储区, 他们里面存放的是常量(不太了解, 有空扫下盲) new 关键字 用来在内存(堆)中开辟一块空间, 用户获得一个指向内存中目标位置的指针 用法 参考示例 //申请一块指向单个int对象的内存, 并将值初始化为"5" int *ptr_0 = new int(5); //申请一块指向5个连续int类型对象的内存 //使用C++11统一的花括号初始化, 直观地对内存进行初始化 int * ptr_1 = new int[5]{1,2,3,4,5}; delete 关键字 删除 使用new申请的内存 用法

常用API_1

无人久伴 提交于 2020-01-28 21:25:22
API API(Application Programming Interface),应用程序编程接口。Java API是一本程序员的 字典 ,是JDK中提供给 我们使用的类的说明文档。这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学 习这些类如何使用即可。所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们。 Scanner类 一个可以解析基本类型和字符串的简单文本扫描器。 例如,以下代码使用户能够从 System.in 中读取一个数: Scanner sc = new Scanner(System.in); int i = sc.nextInt(); 备注:System.in 系统输入指的是通过键盘录入数据。 Scanner使用步骤: 查看类 java.util.Scanner :该类需要import导入后使用。 查看构造方法 public Scanner(InputStream source) : 构造一个新的 Scanner ,它生成的值是从指定的输入流扫描的。 查看成员方法 public int nextInt() :将输入信息的下一个标记扫描为一个 int 值。 匿名对象 创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量。虽然是创建对象的简化写法,但是应用场景非常有限。 匿名对象 :没有变量名的对象。

C++ primer 笔记(一)

。_饼干妹妹 提交于 2020-01-28 08:22:47
第1章 >> << 输入输出操作符返回 输出流std::cin, std::cout本身 endl输出换行,刷新与设备关联的buffer augument 实参 paremeter 形参 buit-in type 内置类型 manipulator 操纵符 第2章 C++是静态类型语言,编译时执行类型检查 wchar_t =L'a' 16位 float 6位有效数字 double 至少10位有效数字 long double 至少10位有效数字 赋值:对于unsigned越界赋值,结果等于该值对unsigned可能取值个数求模 例如:unsigned char c=336; //实际c=336%256=80 unsigned char c=-1; //实际c=-1%256=255 对于signed越界赋值,由编译器决定实际值 初始化不是赋值,初始化指创建变量并赋值,赋值是擦出当前值赋新值 内置类型初始化:在函数体外定义的变量初始化为0,函数体内定义的不自动初始化。 定义:分配存储空间,还可以指定初值 声明:向程序表明变量的类型,名字 extern声明:当有初始化式时则为定义 非const变量默认为extern,要使const变量能在其他文件中访问,则需显式指定为extern。const默认为定义它的文件的局部变量。 引用必须在定义时初始化,引用一经初始化,就始终指向同一个特定对象。

反射机制

狂风中的少年 提交于 2020-01-27 22:14:59
概述   Java的反射机制是指程序在运行时动态获取信息以及动态调用对象方法的功能。它是一种强有力的工具,是面向抽象编程一种实现方式,它能使代码语句更加灵活,极大提高代码的运行时装配能力。   使用反射机制的意义在于:   1.反射机制极大的提高了程序的灵活性和扩展性,降低模块的耦合性,提高自身的适应能力。    2.通过反射机制可以让程序创建和控制任何类的对象,无需提前硬编码目标类。    3.使用反射机制能够在运行时构造一个类的对象,判断一个类所具有的成员变量和方法,调用一个对象的方法并生成动态代理。    4.反射机制是构建框架技术的基础所在,使用反射可以避免将代码写死在框架中。 Class类   java.lang.Class类提供了一些方法可以获取类型的信息,包括成员变量和方法等。无论是基本类型,还是引用类型,每一种类型都有一个对应的Class对象。   获取Class对象的方式有3种:   1.调用Object的getClass()方法获取Class对象。     a.该方式不适于基本类型。     b.该方式获取的Class对象的泛型类型无法确定,只能限制其范围为对象的类型或其子类类型。   2.用“.class”获取Class对象。     a.该方式适用于所有类型。     b.该方式获取的Class对象的泛型类型可以确定。   3.调用Class.forName