当前位置: 首页 > news >正文

怎么免费建立网站银行管理系统网站建设

怎么免费建立网站,银行管理系统网站建设,个人主页是指什么,wordpress 站点更改目录 表格结构和类结构 表格的动作和类的方法 与面向过程的区别 具体实现 对象和类的详解 类的定义 属性#xff08;field 成员变量#xff09; 方法 示例--编写简单的学生类 简单内存分析(理解面向对象) 构造方法(构造器 constructor) 声明格式#xff1a; 四…目录 表格结构和类结构 表格的动作和类的方法 与面向过程的区别 具体实现 对象和类的详解 类的定义 属性field 成员变量 方法 示例--编写简单的学生类 简单内存分析(理解面向对象) 构造方法(构造器 constructor) 声明格式 四个要点 练习 构造方法的重载 测试 JVM虚拟机内存模型 参数传值机制 基本数据类型参数的传值 引用类型参数的传值 示例 垃圾回收机制(Garbage Collection) 原理和算法 通用的分代垃圾回收机制 JVM调优和Full GC 容易造成内存泄漏的操作 this关键字 用法 static关键字 特点 静态初始化块 注意事项 变量的分类和作用域 包机制(package、import) 两个要点 JDK中的主要包 导入类import 注意点 静态导入 使用 表格结构和类结构 面向对象中类对应表的结构表的field 表格的动作和类的方法 动作---定义成方法 对象对应“表中的数据” 与面向过程的区别 都是对软件分析、设计和开发的一种思想C语言是一种典型的面向过程语言Java是一种典型的面向对象语言。 面向过程适合简单、不需要协作的事务重点关注如何执行是一种执行思维 面向对象更契合人的思维模式是一种设计者思维 面向对象可以帮助我们从宏观上把握从整体上分析整个系统。但具体到微观操作仍然需要面向过程的思路它们搜索相辅相成的 具体实现 设计时先从问题中找名词确定哪些名词可以作为类再根据问题需求确定类的属性和方法确定类之间的关系。 对象和类的详解 类class对象Object、instance(实例)。 类可以看作一类对象的模板对象可以看作该类的一个具体实例 类用于描述同一类型的对象的一个抽象概念定义了这一类对象所应具有的共同属性、方法 类的定义 每个源文件必须有且仅有一个public class并且类名与文件名保持一致 一个Java文件可以定义多个class 对于一个类来说有三种成员 属性field 方法method 构造器constructor 属性field 成员变量 属性用于定义该类或该类对象包含的数据或静态特征作用范围是整个类体定义成员变量时可对其初始化如果不初始化Java默认做初始化。 成员变量的默认值默认值数据类型默认值整型0浮点型0.0字符型\u0000布尔型flase所有引用类型null 定义格式 [修饰符] 属性类型 属性名 [默认值] ; 方法 用于定义该类或该类实例的行为特征和功能实现。是类和对象行为特征的抽象。 整个程序最基本的单位是类方法从属于类和对象。 格式 [修饰符] 方法返回值类型 方法名(形参列表) { // n条语句 } 示例--编写简单的学生类 public class student {int id;int age;String name; ​public void study(){System.out.println(学习呢);} ​public void play(){System.out.println(好玩爱玩);} ​public static void main(String[] args) {student s new student();    // 创建了一个对象System.out.println(s.id);System.out.println(s.name);System.out.println(s.age);s.name 张三;s.age 18;System.out.println(s.name);System.out.println(s.age); ​s.play();s.study();} ​ } 简单内存分析(理解面向对象) 栈(stack)main()的栈帧argsnull、s堆中的值 堆(heep)id、age、name属性--都是默认值study()、play()两个方法 方法区student类的信息study()、play()代码常量池static属性和方法 创建对象四步 分配对象空间并将对象成员变量初始化为0或空 执行属性值的显式初始化 执行构造方法 返回对象的地址给相关的变量 构造方法(构造器 constructor) 用于对象初始化不是创建对象 声明格式 [修饰符] 类名(形参列表){ // n条语句 } 四个要点 构造器通过关键字new调用 构造器虽然有返回值但不能定义返回值类型(返回值的类型肯定不是本类)不能在构造器里使用return返回某个值 如果没有定义构造器编译器会自动定义一个无参的构造方式。 构造器的方法名必须和类名一致 练习 定义一个点(Point)类来表示二维空间中的点(有两个坐标)要求 可以生产具有特定坐标的点对象 提供可计算该点距另外一点距离的方法 public class Point {double x,y; ​Point(double _x,double _y){x _x;y _y;} ​public double getDistance(Point p){return Math.sqrt((x-p.x) * (x-p.x) (y-p.y) * (y- p.y));} ​public static void main(String[] args) {Point p1 new Point(3.0,4.0);Point origin new Point(0.0,0.0);System.out.println(p1.getDistance(origin));} } 构造方法的重载 测试 public class user {int age;int id;String name; ​public user(){}public user(int id){this.id id;} ​public user(int id,String name){this.id id;this.name name;} ​public user(int age, int id, String name) {this.age age;this.id id;this.name name;} ​public static void main(String[] args) {user a new user(1);user b new user(2,张三);user c new user(18,3,李四);} } 快捷键生成构造器右键--generate--constructor JVM虚拟机内存模型 学习JVM虚拟机内存模型能够更好的理解面向对象 分为三个区域 栈(stack) 描述的是方法执行的内存模型每个方法被调用都会创建一个栈帧 JVM为每个线程创建一个栈存放该线程执行方法的信息 属于线程私有不能实现线程间共享 先进后出后进先出 由系统分配速度快是一个连续的内存空间 堆(heap) 用于存储创建好的对象和数组 JVM只有一个堆所有线程共享 是一个不连续的内存空间分配灵活速度慢 在堆上的区域会被垃圾回收器做进一步的划分eg新生代、老年代 方法区(method area) JAVA虚拟机规范可有不同实现 JDK7以前是永久代 JDK部分去除“永久代”静态变量字符串场池都挪到了堆内存中 JDK8是“元数据空间”和堆结合起来 JVM只有一个方法区被所有线程共享 方法区实际也是堆只是用于存储类、常量相关信息 用来存放程序中永远不变或唯一的内容 常量池主要存放常量文本字符串、final常量值 参数传值机制 Java中方法中所有参数都是值传递即我们得到的是复印件而不是原件。 基本数据类型参数的传值 传递的是值的副本副本改变不会影响原件 引用类型参数的传值 传递的是值的副本但引用类型指的是对象的地址。因此副本和原参数指向同一个地址改变副本指向地址对象的值意味着原参数指向对象地址的值也会改变。 示例 public class Person {int age;String name; ​public void show(){System.out.println(name);System.out.println(age);} ​public static void main(String[] args) {Person p1 new Person();p1.age 18;p1.name 张三;p1.show(); ​Person p2 new Person();p2.age 20;p2.name 李四;p2.show(); ​Person p3 p1;  // 指向的是p1的对象地址Person p4 p1;  // 指向的是p1的对象地址p4.age 66;p4.show();System.out.println(p1.age);   // 66} } 垃圾回收机制(Garbage Collection) 原理和算法 内存管理 堆中对象的管理对象空间的分配使用new关键字创建对象即可 对象空间释放将对象赋值null 垃圾回收过程 发现无用的对象 回收无用对象占用的内存空间 相关算法 引用计数法 引用可达法(跟搜索算法) 通用的分代垃圾回收机制 堆内存模型 年轻代 所有新生成对象首先放在Eden区存储从未被垃圾回收的新对象有用的对象放入survivor区循环存放小于15次大于15次就放入Tenured区中 Minor GC清理年轻代区域 年老代 年老代存放的都是一些生命周期较长的对象 Major GC清理老年代区域 永久代 Full GC用于清理年轻代、年老代、永久代成本高会对系统性能造成影响 JVM调优和Full GC 以下原因可能导致Full GC 年老代(Tenured)被写满 永久代(Perm)被写满 System.gc()被显式调用--通知虚拟机调用Full GC 上一次GC后Heap的个各域分配策略动态变化 容易造成内存泄漏的操作 内存泄漏由于某种原因程序未释放造成内存浪费导致运行速度慢或系统崩溃。 创造大量无用对象 静态集合类的使用 各种连接对象IO流对象、数据库连接对象、网络连接对象未关闭 监听器的使用 this关键字 this当前对象本身(对象的地址) 用法 普通方法中this指向调用该方法的对象 构造方法中this指向正要初始化的对象 this()调用重载的构造方法中避免相同的初始化代码但只能在构造方法中用并且必须位于构造方法第一句 this不能用于static方法中 this作为普通方法的隐式参数由系统传入方法中 public class testThis {int a,b,c; ​testThis(){System.out.println(正要初始化对象 this);}// 想调用testThis()的写法 ​testThis(int a,int b){this();  // 调用的是testThis(),且必须位于第一行// 不能写testThis()a a;  // 这里指的是局部变量而不是成员变量this.a a;this.b b;} ​testThis(int a,int b,int c){this(a,b); // 调用的是testThis(int a,int b)this.c c;} ​void sing(){ ​} ​void ha(){System.out.println(当前对象 this);this.sing();System.out.println(哈哈哈哈);} ​public static void main(String[] args) {testThis haha new testThis(2,3);haha.ha();} ​ } static关键字 static声明的熟悉或方法静态变量(类变量)、静态方法(类方法) 特点 为该类的公用变量属于类被该类的所有实例共享在类载入时被初始化 static变量只有一份 一般用类名.类变量/方法调用 在static方法中不可直接访问非static的成员 public class testStatic {int id;String name; ​static String school 成都信息工程大学;public testStatic(int id,String name){this.id id;this.name name;} ​public void login(){System.out.println(name);} ​public static void printSchool(){// login(); 无法调用非静态成员会报错System.out.println(school);} ​public static void main(String[] args) {testStatic a new testStatic(12,张三);testStatic.printSchool();testStatic.school 嘿嘿嘿;testStatic.printSchool();} } 静态初始化块 构造方法用于对象的普通初始化 静态初始化块用于类的初始化操作 在静态初始化块中不能直接访问非static成员 注意事项 静态初始化块执行顺序 上溯到Object类先执行Object的静态初始化块再向下执行子类的静态初始化块直到类的静态初始化块为止 构造方法执行顺序和上面顺序一样 public class TestStatic01 {static String school;static{System.out.println(111111);school 2222;printSchool();} ​public static void printSchool(){System.out.println(school);} ​public static void main(String[] args) {} } 变量的分类和作用域 三种类型局部/成员/静态 核心区别 类型声明位置从属于生命周期(作用域)局部变量方法或语句块内部方法/语句块从声明处开始到方法或语句块结束成员变量类内部方法外部对象对象创建成员变量跟着创建消失一样静态变量类内部static修饰类类被加载静态变量就有效 包机制(package、import) 包(package)相当于文件夹对于文件的作用。用于管理类、解决类的重名问题 两个要点 通常是类的第一句非注释性语句 包名域名倒着写即可再加上模块名便于内部管理类 命名示例 com.oracle.test; com.dubai.zhang.test; 注意 写项目都要加包不要使用默认包 com.zhang 和 com.zhang.san是两个完全独立的包没有包含关系 JDK中的主要包 表JDK中的主要包Java中的常用包说明java.lang包含一些Java语言的核心类如:String、Math、Integer、System、Threadjava.awt包含了构成抽象窗口工具集(abstract window toolkits)的多个类被用来构建和管理应用程序的图形用户界面(GUI)java.net包含执行与网络相关的操作的类java.io包含能提供多种输入/输出功能的类java.util包含一些实用工具类如定义系统特性、使用与日期日历相关的函数 导入类import 如果要使用其他包的类需使用import从而在本类中直接通过类名调用。 package com.lisi.test; ​ import com.zhangsan.test.Test01; ​ public class apple {//     不import Test01想要调用的写法 //   com.zhangsan.test.Test01 apple new com.zhangsan.test.Test01();//   import 后的写法Test01 banana new Test01();} 注意点 Java会默认导入java.lang包下所有的类 如果导入两个同名的类只能用包名类名来显示调用相关类 egjava.util.Date Date new java.util.Date(); 导入一个包下所有的类加号egimport java.util.* 静态导入 static importJDK1.5新增加的功能作用导入指定类的静态属性和方法。 使用 package com.zhangsan.test; ​ import static java.lang.Math.*; // 导入Math类的所有静态属性 import static java.lang.Math.PI; // 导入Math类的PI属性 ​ public class Staticimport {public static void main(String[] args) {System.out.println(PI); // 不用再 Math.PI} }
http://www.zqtcl.cn/news/513755/

相关文章:

  • 凡科建站弊端各学院二级网站建设通报
  • 做网站怎么注册营业执照民制作网站哪家便宜
  • 临沂做进销存网站推广软件公司
  • 网站前端建设唐山网站建设托管
  • 做效果图有哪些网站seo怎么做关键词排名
  • 深圳手机网站开发什么网站可以做英语题
  • 网站优化什么意思图片展示网站
  • 建德做网站米趋外贸网站建设
  • 国外优秀的设计网站八爪鱼磁力搜索引擎
  • 网站建设优化陕西网络营销推广方法与策略
  • 网站建设推广者怎样找到客户百度seo排名帝搜软件
  • 绵阳网站托管网站建设第一品牌
  • 张家港网站建设培训班电商seo引流
  • 网站安全怎么做手机网站 焦点图
  • 阿里云做网站的代码网上申请入团网站
  • 精品课程网站怎么做建筑图纸符号大全解释
  • 高权重网站 内页做跳转给新网站许昌做网站公司哪家专业
  • 咸阳网站建设工作室网站建设经
  • 网站怎么做短信接口新浪wordpress
  • 方维o2o 2.9蓝色团购网站程序源码模板做一电影网站怎么赚钱
  • 口碑好网站建设资源新昌网站建设
  • 苏州做网站的公司排名泉州网络推广专员
  • 无为县做互联网网站备案的时候网站建设方案书要吗
  • 修改网站的备案主体dede网站地图不显示文章列表
  • 建立个人网站的成本织梦html5手机网站模板
  • 怎么自己建一个网站吗php网页设计培训
  • 深圳大型论坛网站建设wordpress国内加速
  • 仿站怎么做广告装饰公司名字
  • 黄冈网站推广收费标准wordpress导航页面设置密码
  • 做网站会犯法吗贵州省建设厅城乡建设网站