JieSangQAQφ(゜▽゜*)♪ 
  • Home
  • Archives
  • Categories
  • Tags
  • About
  •     

冒泡排序快速排序简单代码实现

冒泡排序123456789101112131415161718192021222324import java.util.Arrays;public class TestSort { //冒泡排序算法将参数指定的数组元素进行排序 public static void bubble(int[] arr){ //1.使用外层for循环来控制比较的轮数 for(int i = 1; i < arr.length; i++){ //声明boolean类型的变量作为标志位 boolean flag = true; //2.使用内层for循环来控制针对当前轮比较的次数 for(int j = 0; j < arr.length-i; j++){ //3.若第一个元素比第二个元素大,则交换两个元素的位置 if(arr[j] > arr[j+1]){ int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; flag =
 2019-11-05   11月    Java 

设计原则与设计模式

常用的设计原则软件/项目开发的流程 需求分析文档 => 概要设计文档 => 详细设计文档 => 编码和测试 => 安装和调试=> 维护和升级 常用的设计原则 开闭原则 对扩展开放,对修改关闭 实现热插拔的效果,从而提高软件的可维护性 如: class Person{12345678 private String name; private int age; ... }public class SubPerson extends Person{ private boolean gender;} 里氏代换原则 任何父类可以出现的地方,子类一定可以出现 尽量多使用继承和多态的方式编程 如: static void draw(Shape s){1234567891011121314151617181920212223242526272829 s.show(); } draw(new Rect(1, 2, 3, 4));
 2019-11-04   10月    Java 

线性查找与二分查找简单代码实现

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667public class TestFind { //线性查找算法 //要求从参数指定的数组中查找参数指定的元素并返回下标 public static int find(int[] arr, int data){ for(int i = 0; i < arr.length; i++){ if(arr[i] == data){ return i; //表示查找成功 } } return -1; //表示查找失败 } //二分查找算法 //要求从参数指定的数组中查找参数指定的元素并返回下标 public static int findBinary(int[] arr, int left, int right, int data){ /*
 2019-11-02   11月    Java 

基本查找算法和排序算法

常用的查找算法线性/顺序查找算法算法流程 使用目标元素与样本数列中的元素从前向后依次比较大小; 若找到与目标元素相等的元素,则表示查找成功; 若所有元素与目标元素比较完毕也没有相等的元素,则表示查找失败; 二分/折半查找算法算法流程 假定样本数列中的所有元素从小到大有序排列; 使用目标元素与样本数列中的中间元素比较大小,若相等则查找成功; 若目标元素小于中间元素,则应该去中间元素的左边进行查找; 若目标元素大于中间元素,则应该去中间元素的右边进行查找; 直到处理完毕所有元素也没有相等的元素,则表示查找失败; 常见的排序算法冒泡排序算法算法流程 比较相邻位置两个元素的大小,若第一个元素比第二个大则交换两个元素的位置; 从开始的第一对一直比较到结尾的最后的一对,经过这一步,最后的元素将是这组 元素的最大值; 重复步骤b持续对越来越少的元素进行比较,直到处理完毕所有元素为止; (任何相邻位置的两个元素都不再需要交换为止) 插入排序算法算法流程 取出第一个元素,可以认定该元素已经有序; 取出下一个元素,让取出的元素与左边的有
 2019-11-01   10月    Java 

反射机制

反射机制如: Person p = new Person(); - 表示声明Person类型的引用指向Person类型的对象 p.show(); - 表示调用show方法 基本概念 通常情况下编写的代码都是固定的,运行的结果也是固定的,若编写代码时不确定会创建什么类型的对象以及调用什么样的方法,由运行时传入的参数决定,这种技术就叫动态编程或反射机制。 反射机制是目前主流框架的底层原理。 Class类基本概念 java.lang.Class类的实例用于表示正在运行Java程序中的类和接口,也就是用于代表一种数据类型 该类没有公共构造方法,该类的实例由Java虚拟机和类加载器自动构造 获取Class对象的方式 a.使用数据类型.class的方式获取对应类型的Class对象; b.使用对象.getClass()的方式获取对应类型的Class对象; c.使用包装类.TYPE的方式获取对应基本数据类型的Class对象; d.使用Class.forName()的方式获取对应类型的Class对象; 常用的方法 sta
 2019-10-31   10月    Java 

基于UDP的编程模型

基于udp协议的编程模型 编程模型接收方: (1)创建 DatagramSocket类型的对象并提供端口号; (2)创建DatagramPacket类型的对象用于接收数据并记录; (3)调用receive()方法接收数据内容; (4)关闭Socket;发送方: (1)创建DatagramSocket类型的对象; (2)创建DatagramPacket类型的对象并提供接收方的通信地址和端口号; (3)调用send()方法发送数据内容; (4)关闭Socket; 相关类和方法的解析DatagramSocket类 java.net.DatagramSocket类用于描述发送/接收数据的套接字(码头) DatagramSocket() - 使用无参方式构造对象 DatagramSocket(int port) - 根据参数指定端口构造对象 void receive(DatagramPacket p) - 用于接收数据并记录到参数指定的数据报中 void send(DatagramPacket p)- 用于发送参数指定的数据报内容 void
 2019-10-30   10月    Java 

基于TCP的编程模型

七层网络模型 为了保证数据传输的可靠和安全等,ISO将数据的传递从逻辑上划分为以下七层: 应用层、表示层、会话层、传输层、网络层、数据链路层、物理层 当发送数据时,需要按照上述七层进行层层加包然后发送出去 当接收数据时,需要按照上述七层相反的次序层层拆包再解析出来 常用的协议 http - 超文本传输协议,用于浏览网页时使用 ftp - 文件传输协议,用于上传和下载文件时使用 tcp - 传输控制协议,用于网络通信时使用 udp - 用户数据报协议,用于网络通信时使用 ip - 互联网协议,是上述协议的底层协议 协议 - 本质上就是一种规则,用于约定双方通信的机制 *IP地址 *如: 192.168.1.1 - 是绝大多数路由器的登录地址,进行MAC地址的过滤 IP地址是互联网中的唯一地址标识,本质上是由32位二进制组成的整数,叫做IPv4,当然也有128位二进制组成的整数,叫做IPv6,目前的主流是IPv4. 日常生活中采用点分十进制表示法进行IP地址的描述,也就是让每个字节的二进制转换为一个十进制整
 2019-10-29   10月    Java 

Thread类

线程的状态和方法线程的主要状态(了解、笔试题) 新建状态 - 当线程对象使用new关键字创建完毕后进入的状态 - 此时线程还没有开始执行 就绪状态 - 当线程对象调用start()方法后进入的状态 - 此时线程依然没有开始执行 运行状态 - 当线程调度器调度就绪线程后进入的状态 - 此时线程开始执行 - 当时间片执行完毕后线程的任务没有完成时回到就绪状态 消亡状态 - 当时间执行完毕后线程的任务已经完成时进入的状态 - 此时线程已经终止 阻塞状态 - 当线程执行的过程中发生了阻塞事件后进入的状态,如:sleep()方法 - 当阻塞状态解除后回到就绪状态 线程的常用方法 static void sleep(long millis) - 用于使得调用线程休眠参数指定的毫秒数 int getPriority()- 用于获取线程的优先级 void setPriority(int newPriority) - 用于设置线程的优先级
 2019-10-28   10月    Java 

Thread类

线程基本概念 程序 - 数据结构 + 算法,主要指存放在硬盘上的可执行文件 进程 - 主要指运行在内存中的程序 目前主流的操作系统都支持多进程,是为了让操作系统可以同时执行多个任务,但进程是重量级的,新建进程对系统资源的消耗比较大,因此进程的数量比较局限 线程是进程内部的程序流,也就是说操作系统支持多进程,而每个进程的内部又支持多线程,并且线程是轻量级的,会共享所在进程的资源,因此以后主流的开发都采用多线程技术 多线程技术是采用时间片轮转法来保证并发执行的效果,所谓并发就是指宏观并行微观串行的机制。 线程的创建创建的方式 java.lang.Thread类用于描述线程,Java虚拟机允许运行多个执行线程,而线程的创建和启动方式如下: 自定义类继承Thread类并重写run()方法,创建该类的对象调用start()方法 自定义类实现Runnable接口并重写run()方法,创建该类的对象作为实参来构造 Thread类的对象,然后使用Thread类对象调用start()方法 相关的方法 Thread() - 使用无参形式构造对象 Thread
 2019-10-26   10月    Java 
123456…12

搜索

Hexo Fluid