科大个人主页/FTP系统 参考网页http://ustcnet1.ustc.edu.cn/fwzn/wzjs/201503/t20150324_212955.html最终结果如下,大家快来逛逛吧http://home.ustc.edu.cn/~sa517486/
java基础-增强for循环 增强for循环,比普通的for循环简洁多了,必须要熟练输出一维数组 String[] ni=new String[]{"国家","nih"}; for (String i : ni) { System.out.print(i+"\t"); }输出二维数组 for (int[] arr : dp) { for (int num : arr) { Sys
装jdk 首先从官网上下载jdk安装包,如果后缀 i586,则是32位的,大部分电脑不要选。我们要选后缀X64的,这才是64位电脑应该选的。双击jdk,一路next。装好之后,还会弹出让你安装jre。因为jdk自带jre,所以这个jre装不装都行。装好之后,用cmd去jdk目录下的bin,敲出java -version,有大量信息,则说明jdk安装成功,下面要按环境变量。新建一个系统变量JAVA_HOME ,变量值为D:\Program Files\Java\jdk1.8.0_251...
git使用教程 由于本文为自己而写,所以只写要注意的地方问题一:在github上创建了一个repositories,本地新建了一个项目。那么怎样让本地代码与远程仓库产生联系呢?以上图片可以说明一切了,有三种方式可以。第一种是全新的项目,手动创建。怎么可能?我们都是用idea自动创建项目的。这里采取第二种。在已经初始化的项目中,add到remote的仓库,再push上去。问题二:每个reposito...
反射 反射是JAVA开发的高级特性,官方概念如下:JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。其实就是,反射可以知道任意类或对象的属性和方法,比如,我建立了一个student类如下,内含公有,私有的属性和方法:package c...
SpringBoot+MyBatis搭建迷你小程序 本项目如下:maven的安装目录在哪?setting文件放在哪?仓库在哪?(分别为G:\Program Files (x86)\apache-maven-3.5.4\conf,与G:\Program Files (x86)\apache-maven-3.5.4\repository)dao层的设计:表设计:略实体类:getset方法快捷键:alt+insert,全选所有变量,构建g...
剑指offer 二维数组找目标值 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。规律:首先选取数组中右上角的数字。如果该数字等于要查找的数字,查找过程结束:如果该数字大于要查找的数字,剔除这个数字所在的列:如果该数字小于要查找的数字,剔除这个数字所在的行。也就是说如果要查找的数字不在数组的右上角,则每...
mysql篇---windows环境 1.windows环境下的mysql忘记密码了会很麻烦,试了好多种攻略都不行,只得重装。所以安装好后,要找个记事本写root密码。2.如果重装的话,直接到mysql官网,下载最新版https://dev.mysql.com/downloads/installer/然后逐步安装好,下面这一篇较好:https://www.runoob.com/w3cnote/windows10-mysql...
程序员的自我修养-知识点汇总 java基础:集合多线程创建(三种)生命周期(新建,就绪,运行,阻塞,死亡)控制(join,sleep,yield,改变优先级)同步 4种方式(临界区,互斥量,信号量,事件)7种方法(同步方法,同步代码块,volatile,重入锁,局部变量,阻塞队列,原子变量)通信(全局变量,消息,事件CEvent类)线程池相关类(threadlocal类,线程安全...
二分查找 二分查找是最简单的查找,本科阶段数据结构就应该学好的,现在来炒剩饭,重打基础。二分查找,必须是有序的,如果数组不是有序,则先排序,再查找。递归的二分查找是均分的,每次用中心点与目标值比较,再递归操作。递归的代码如下:package Collection;public class BinarySearch { /** * 使用递归的二分查找(递归的均分折半)...
堆排序 堆排序是必须要会手写的。原理如下:1.从最后一个非叶子结点开始,从左到右,从上到下,与父节点进行交换,构建大顶堆2.将堆顶元素(此时最大)与末尾元素交换,就获取了最大值了,再对剩下的n-1个节点也进行此类操作。就可以把最大值逐渐交换到最末端,实现大顶堆的升序排序。import java.util.Arrays;/** *1.构建一个大项堆。2.将堆顶与末尾交换。3,持续...
剑指offer-17 合并链表 2个链表,本来都是从小到大的顺序排列的,现在要求合并,合并后依然从小到大思路:先设定一个pointer指针,指向新链表的新节点。1.如果链表1为空,则新链表就是链表2,反之一样2.创建一个指针pointer,在子链表都不为空时,比较两个链表中节点值,pointer指向较小值,并遍历全部的链表3.如果其中任何一个链表比较结束,另一个还有,则将剩余链表直接接到新链表后面。注:不要用...
剑指offer-13 在o(1)内删除链表的某一节点 一个链表,需要对它进行删除操作,那么怎么在o(1)的时间复杂度内将其准确删除呢?其实,就是将某个node.value赋为0,其左右的指针打断再重连即可。关键是怎么重连。比如,我要删除i节点,那么让h直接指向j节点即可。但是,找到h节点,要遍历n次,不符合要求。所以,我们将j值复制到i处,再指向下下个点即可。具体步骤如下:1.判断head与要删除的点是否为null,如果为null...
剑指offer-10 二进制数字1的个数 输入一个int型数字,输出它作为二进制的1的个数。如9的二进制为1001,有2个1,则输出2。法一:因为int型有4个字节,一共32位,每次将输入右移1,并和1进行“与”操作。将结果累加,则为1的个数。public class Test10{ public static int numberofone(int n){ int result = 0; ...
介绍Latex神器——Overleaf的方法 向大家介绍2个神网站,一个是腾讯在线文档,一个是overleaf腾讯在线文档就不多介绍了,可以直接百度网址并使用,它有2个亮点,1.特别简洁,高效。2.可以多人在线,共同编辑同一个文档。(在笔者参加研究生数学建模的时候,三个队员编辑同一篇论文,非常有效果!)----------------------------------------------------------------...
剑指offer-两个栈实现-队列尾部插入,头部删除 大家都知道,队列是一个尾部(rear)插入,头部(front)删除的数据结构。本题要求,用两个栈,构造出一个队列出来。本题中,构造两个栈,stack1和stack2,1用来插入,2用来弹出。其中,栈1的插入很简单,函数体内部,直接用add方法即可。但是栈2的弹出,要考虑此时栈2是不是有值,如果2为空,1不空。则弹出1的值,add进2。如果此时2还没有值,则抛异常,如果有值,则pop出来。拓...
剑指offer-2替换空格为指定字符串 该题是剑指offer的基础题,输入一个字符串,里面有一些空格,将空格填写“%20”这三个字符。然后输出。下面是简单代码。public class Test0401{ public static void replaceblank(char[] string,int usedLength) { //统计空白字符数 int blanknum = 0...
剑指offer-输出字符串所有种类的排列组合 常规题,先校验长度,不符合则直接输出;符合则判断是否为最后一个字符,是则直接new对象输出,不是则交换begin和i位置的数字,再用递归输出。public class Test28{// 先校验 public static void permutation(char[] chars){ if (chars.length<1 || chars==null...
剑指offer-15 链表倒数第k个结点 题意题目描述输入一个链表,输出该链表中倒数第k个结点。背景头节点,有指针逐个指向下面的结点,就像下面的样子。这个链表的左边是头节点,右边是尾结点,从头到尾可以遍历,但反过来不行。思路:用两个指针,第一个指针走(k-1)步,到第k个结点,此时第二个指针在起点。然后,两个指针同时走,第一个指针到尾结点时,第二个指针恰好到第倒数第k个结点。p...
剑指offer-21包含min函数的栈 题意题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。思路:构造一个辅助内存,再构造新的pop(弹出),push(压栈),min()方法。构造栈的标准格式为:Stack<Integer> data = new Stack<Integer>();而stack是vector的子类,它除了vector...
Fiddler的简单使用方法 大家都知道,在网络请求中,如果出现错误,用抓包软件抓包是一种查错方法,现在介绍一下fiddler的使用方法。1.终端的配置:端口,iPhone端,设置- >无线局域网- >某网络(与主机同一网络)->点击感叹号-> http代理,配置代理,改为手动。将主机的ip与fiddle的端口号,填进去。然后就完成了手机端的配置。其中,服务器是用cmd,ipc...
线程池小结 系统启动一个线程的成本很高,所以用线程池可以很好的提高性能,特别是,需要创建大量生命期很短的线程,更应该用线程池。线程池在启动的时候,就会创建大量空闲的线程,程序将Runnable,callable对象传给线程池,线程池就会启动一个线程执行run()或call()方法。执行完之后,线程也不会死,而是继续返回线程池,变成空闲的线程。1.创建线程池由Executors工厂类中的某个静态工厂...
创建多线程的三种方法 1.继承Thread类,重写run方法,调用start方法。这个方法是多线程中最简单的,但也是最普通的。package cn.com.Thread;/*创建多线程继承Thread类,重写run方法,调用start方法 */public class FirstThread extends Thread{ private int i; public void r...
剑指offer-42翻转单词顺序-左旋转字符串 题意题目描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?...
ubuntu下安装jdk ubuntu下的jdk,氛围open jdk和oracle jdk两种,前者是开源的,其实也行。不过大部分人使用的还是oracle jdk。有些博客推荐用ppa的方式安装,但这个安装的链接被墙了,所以经常会安装失败。现在介绍另一种,手动解压安装。1.下载,并解压缩先去 oracle官网上,下载linux,64位的安装包,这里以tar.gz为例。链接如下https://www.ora...
剑指offer-16 链表反转 法一(推荐)import java.util.Stack;public class Test05<sout> { public static class ListNode{ int Value; ListNode next; } //用栈 public static void zhan(ListNode roo...
快排-java 快排总结:分区方法(3个while),递归使用排序方法。 使用了分治法!!!package cn.com;import java.util.Arrays;public class QuickSort { public static void main(String[] args) { int arr[] = {8,3,2,5,4,7,6,1}; ...
抽象类 为什么要使用抽象类?我们已知,抽象类不能创建实例,只能当父类来继承,所以抽象类体现的是一种模板模式的设计,提供方法名给子类自己去实现。抽象类的特点:抽象类可以含有抽象方法,抽象方法只有方法名,没有方法体,因为不关心怎么实现。通过其他类来继承抽象类,重写抽象方法来实现。抽象类可以没有抽象方法,但是有抽象方法的一定是抽象类。具体示例代码如下:Shape.javapacka...
this关键字 在java基础中,this关键字有什么用呢?答:让类中的一个方法,访问类中另一个方法或实例变量。先看代码:Dog.javapackage cn.com;public class Dog { public void jump(){ System.out.println("正在执行jump方法"); } public void run(){...
向上转型 我们在写继承的时候,经常会用到向上转型。那么在创建对象的时候,向上转型会调用谁的方法或变量呢,看下面的例子package cn.com;class BaseClass{ public int book = 6; public void base(){ System.out.println("父类的普通方法"); } public void t...
redis总结 redis和memcached的区别。https://blog.csdn.net/sinat_30474567/article/details/72918141------------------------------------------------------------------------------------------------------------------...
String类为什么是不可变的 String,StringBuilder,StringBuffer是经常考的东西其中,String是不可变的。为什么呢,简单解释如下:String类new了一个对象后,我们看到的该对象只是引用,存放了真正内存的地址。并不是真的内存值,如果修改它,会重新生成一个对象的内存值,然后重新引用。为什么这样处理呢,其实有内部原因。那就是,String类下面的成员函数,value,offset,cou...
树的总结 完全二叉树,满二叉树,最大(小)堆,二叉搜索树,平衡二叉树 ,B-树,B+树完全二叉树:二叉树如果有结点缺失,只能发生在右下角,可以只有左结点,没有右结点满二叉树:非叶子节点,都有两个子节点最大堆:首先得是完全二叉树,且父节点的值不小于子节点 二叉搜索树:父节点的值大于左子节点,且小于右子节点。用二叉搜索树查找,类似于二分查找,且比数组增删方便,比链表查找方便。平衡二叉树:最短...
eclipse导入项目No projects are found to import的问题解答 原因:缺少..project和.classpath文件法一:从其他项目中,拷贝这两个文件,放在src同级目录下。 .project文件只需要修改<name>XXXXXXXX</name>这个项目名称,.classpath文件通常不用改法二:1.在myeclipse中新建一个和你要导入的项目同名的项目.2.在新建的项目中找到.project和.classp...
被考到的手写代码 1.一个n位数组,连续三个相加,求哪个位置的和最大?例:a[]={1,2,5,4,8,5,6,3,2},得到下标为3时值最大。和为4+8+5=172.手写二分查找,快排(这些都是最简单的了,肯定要会的)3.已知,每头母牛在生下来三年后,以后每年都可以生一头小牛,假设生的都是母牛。已知某农场第一年有一头牛,第四年有2头牛,问第十年有多少头牛?(写清思路即可)4. 输出一个n*m。n...
一句话总结JVM ------------------------------------------------------------------------------------------------------------------------新生代回收:(复制算法)在堆中,新生代就是存活时间很短的对象。(是否设置了-XX:PretenureSizeThreshold 参数)。复制算法的新生代分为3个...
一句话回答数据结构 ---------------------------------------------------------------------------------------------------------什么是时间复杂度?算法中频度f(n)的数量级。而频度是该算法被重复执行的次数。频度之和记作T(n)----------------------------------------...
五大常用算法之五:分支限界法 分支限界法:我们已知,回溯法的思想是深度优先搜索加剪枝,与之相对,分支限界法的思想是广度优先搜索加剪枝。 (搜索过程使用剪枝函数来为了避免无效的搜索。剪枝函数包括两类:1. 使用约束函数,剪去不满足约束条件的路径;2.使用限界函数,剪去不能得到最优解的路径。) 1. 分支限界法 – 广度优先搜素 1. 简单概述分支限界...
五大常用算法之四:分治法 分治法和动态规划有点像,都是分解成子问题中科大的张署老师课件很清楚,摘录如下:1.什么是分治法当求解的问题较复杂或规模较大时,不能立刻得到原问题的解,但这些问题本身具有这样的特点,它可以分解为若干个与原问题性质相类似的子问题,而这些子问题较简单可方便得到它们的解,因此通过合并这些子问题的解就可得到原问题的解。2. 应用分治法的三个基本步骤①分解问题(divide):把...
五大常用算法之三:动态规划 动态规划:动态规划(Dynamic Programming,简称DP),需要分解出问题的子结构以及通过子结构重新构造最优解。动态规划不像回溯法,有套路可以套用,动态规划需要大量练习,才能掌握规律。一般思路:1.判断问题的子结构(也可看作状态),当具有最优子结构时,就可能使用动态规划。2.求解重叠子问题。一个递归算法不断地调用同一问题,递归可以转化为查表从而利用子问题的解。(注意与分...
五大常用算法之二:贪心算法 贪心算法1. 基本概念 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。 贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,只与当前状态有关。(...
五大常用算法之一:回溯法 熟悉算法的朋友们都知道,我们经常使用五大算法思想,分别是1.贪心算法2.动态规划3.分治法4.回溯法5.分支限界法今天,我们先来总结一下:回溯法简介:回溯法的思想如下:每次都沿着一条路去寻找结果,如果发生了无解的情况,则返回到上一个分叉口,然后选择另一个选择。再向下走到尽头。回溯法适合复杂的,规模较大的问题,有着“通用解题方法”的美称。 常见的是八皇后问题,字符串排序问题(剑指offer真题)。下...
vim编辑器的使用 在linux系统中,vim编辑器的使用很重要,我在慕课网上学习了vim之后,整理如下: Linux里的vim编辑器的使用Vi的全称叫visual interface,也就是可视化接口,相当于Windows里的记事本,但是,vi的功能可比记事本多多了。它可以直接创建并编辑文件,还有一些其他暂时没了解的功能。而vim由vi发展而来,包涵vi的全部功能。 三种模式:vim有命令模式(...
linux的操作入门 因为自己用的红帽的书,直接看的上面的例题,所以也按照上面的思路说点总结吧1、安装虚拟机,配置红帽7.3镜像(不要忘了安装图形化界面)2、在桌面上,用终端打开,在上面敲命令。3、常用的介绍:ls 列出现有目录下的文件 (-1 简要列出 -l整行全部列出)cd 不写路径就是退回上级目录,写路径就是转入任意的某一目录pwd 显示当前路径cp ~/XX/
Windows下的oracle 11g的入门 几个月没用oracle之后,花了一个下午把oracle的基本操作迅速捡回来了,记录如下:一:安装oracle11G1.1首先要下载oracle服务端和客户端。官网下载链接如下:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win64soft-094461.html
Dmp文件的导入和导出总结 Dmp文件的导入和导出总结先说导入步骤:先在实例(即服务)下建立表空间,再创建用户和密码。为了方便,可以将表空间,用户,密码设置为相同的值。再对用户赋权限,可以赋为dba权限。设置dmp文件的路径最后用数据泵即可。--建立表空间create tablespace bdcdj datafile 'D:\oracle\bdcdj.dbf' size 5
安装oracle和plsql时的一点感想 装oracle时,需要设定一个实例名和口令。但是这个实例名和口令没什么用,因为后面用plsql还是会创建实例的。如图所示:所有账户使用统一管理口令,建议用sys出现以上错误时,要看错误提示内容,上面说是日志文件有问题,其实就是说应该从后台运行。。。。还有的就是要配置监听。不管你设定多少个用例(不过我们一般只设定一个用例),你都只需要配置一个监听,因为监听是起到一