![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础
xxd9456
这个作者很懒,什么都没留下…
展开
-
java 、python 字符列表反转对比
java下:StringBuffer sBuffer = new StringBuffer(); sBuffer.append(789);System.out.println(sBuffer.reverse()); 输出:987python下:a=987print a[::-1]输出:987原创 2018-05-19 19:04:57 · 140 阅读 · 0 评论 -
Java多线程的同步机制(synchronized)
一段synchronized的代码被一个线程执行之前,他要先拿到执行这段代码的权限,在 java里边就是拿到某个同步对象的锁(一个对象只有一把锁); 如果这个时候同步对象的锁被其他线程拿走了,他(这个线程)就只能等了(线程阻塞在锁池 等待队列中)。 取到锁后,他就开始执行同步代码(被synchronized修饰的代码);线程执行完同步代码后马上就把锁还给同步对象,其他在锁池中 等待的某个线程就可以...转载 2018-05-29 16:39:02 · 383 阅读 · 0 评论 -
python 前序、中序、后续遍历及非递归实现,宽度优先遍历实现
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2018-05-24 15:16# @Author : xxd# @File : test.pyclass Node: def __init__(self,data,left=None,right=None): self.data=data...原创 2018-05-24 19:52:46 · 4257 阅读 · 0 评论 -
java等待唤醒机制
/*等待/唤醒机制。 涉及的方法:1,wait(): 让线程处于冻结状态,被wait的线程会被存储到线程池中。2,notify():唤醒线程池中一个线程(任意).3,notifyAll():唤醒线程池中的所有线程。这些方法都必须定义在同步中。因为这些方法是用于操作线程状态的方法。必须要明确到底操作的是哪个锁上的线程。为什么操作线程的方法wait notify noti...原创 2018-05-30 10:06:41 · 360 阅读 · 0 评论 -
java 多生产者消费者问题
/*生产者,消费者。多生产者,多消费者的问题。if判断标记,只有一次,会导致不该运行的线程运行了。出现了数据错误的情况。while判断标记,解决了线程获取执行权后,是否要运行!notify:只能唤醒一个线程,如果本方唤醒了本方,没有意义。而且while判断标记+notify会导致死锁。notifyAll解决了本方线程一定会唤醒对方线程的问题,虽然会唤醒本方线程,但是本方线程会whi...原创 2018-05-30 11:09:58 · 237 阅读 · 0 评论 -
java多线程等待强制唤醒——interrupt
/*停止线程:1,stop方法。2,run方法结束。怎么控制线程的任务结束呢?任务中都会有循环结构,只要控制住循环就可以结束任务。控制循环通常就用定义标记来完成。但是如果线程处于了冻结状态,无法读取标记。如何结束呢?可以使用interrupt()方法将线程从冻结状态强制恢复到运行状态中来,让线程具备cpu的执行资格。 当时强制动作会发生了InterruptedExce...原创 2018-05-30 13:28:02 · 1005 阅读 · 0 评论 -
java 多线程 join 、yield
//jion 等待该线程结束class Demo implements Runnable{ public void run() { for(int x=0; x<50; x++) { System.out.println(Thread.currentThread().toString()+"....."+x); Thread.yield();//释放线程执行权,执...原创 2018-05-30 13:53:08 · 108 阅读 · 0 评论 -
深入理解Java的接口和抽象类
深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。下面是本文的目录大纲: 一.抽象类 二.接口 三.抽象类和接口的区别 若有不正之处,请多多谅...转载 2018-05-30 14:06:22 · 106 阅读 · 0 评论 -
Java中private、protected、public和default的区别
Java中private、protected、public和default的区别public:具有最大的访问权限,可以访问任何一个在classpath下的类、接口、异常等。它往往用于对外的情况,也就是对象或类对外的一种接口的形式。protected:主要的作用就是用来保护子类的。它的含义在于子类可以用它修饰的成员,其他的不可以,它相当于传递给子类的一种继承的东西default:有时候也称为frie...转载 2018-05-31 11:21:12 · 160 阅读 · 0 评论 -
java中使用ListIterator来完成在迭代中对元素进行更多的操作。
import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.ListIterator;public class ListDemo2 { /** * @param args */ public static void main(String[] a...原创 2018-06-07 14:48:09 · 987 阅读 · 0 评论 -
Java堆、栈和常量池以及相关String的讲解
在理解java堆和栈时看到的一片不错的文章原文链接:https://blog.csdn.net/youzhouliu/article/details/51804355一:在JAVA中,有六个不同的地方可以存储数据: 1. 寄存器(register)。 这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配。你不能直接控制,也...原创 2018-05-18 19:51:48 · 123 阅读 · 0 评论 -
Java中的内部类(成员内部类、静态内部类、局部内部类、匿名内部类)
Java中的内部类(成员内部类、静态内部类、局部内部类、匿名内部类)Java中的内部类(成员内部类、静态内部类、局部内部类、匿名内部类)神话丿小王子的博客主页 我们先看这样一段话:人是由大脑、肢体、器官等身体结果组成。而组成我们人体的心脏它也有自己的属性和行为(血液、跳动),显然,此处不能单方面用属性或者方法表示一个心脏了,而需要一个类,但是这个类要依赖于人这个类存在(因为心脏不能脱离人体而存活...转载 2018-06-26 21:50:29 · 208 阅读 · 0 评论 -
工厂模式
什么是工厂模式工厂模式概念:实例化对象,用工厂方法代替new操作。工厂模式包括工厂方法模式和抽象工厂模式。抽象工厂模式是工厂方法模式的扩展工厂模式的意图定义一个接口来创建对象,但是让子类来决定哪些类需要被实例化。工厂方法把实例化的工作推迟到子类中去实现。【http://www.360doc.com/content/11/0824/17/3034429_142983837.shtml】这两天突然想学...转载 2018-05-29 14:56:19 · 154 阅读 · 0 评论 -
sql语句 的集合运算
题目描述获取所有非manager的员工emp_noCREATE TABLE `dept_manager` (`dept_no` char(4) NOT NULL,`emp_no` int(11) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`dept_no`));CREATE TA...原创 2018-05-24 16:12:43 · 636 阅读 · 0 评论 -
mysql中 having 用法
查找薪水涨幅超过15次的员工号emp_no以及其对应的涨幅次数tCREATE TABLE `salaries` (`emp_no` int(11) NOT NULL,`salary` int(11) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`from_date`));解法一:s...原创 2018-05-24 15:37:26 · 8044 阅读 · 0 评论 -
java 、python 字符串转数字,数字转字符串方法对比
java下一、将字串 String 转换成整数 int。1). int i = Integer.parseInt([String]); 2). int i = Integer.valueOf(my_str).intValue()。二、将整数 int 转换成字串 String 1.) String s = String.valueOf(i);2.) String s = Integer.toStri...原创 2018-05-19 18:53:39 · 1125 阅读 · 0 评论 -
static 静态变量生命周期
static生命周期静态变量的类型说明符是static。静态变量当然是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量,例如外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。对于自动变量,它属于动态存储方式。但是也可以用static定义它为静态自动变量,或称静态局部变量,从而成为静态存储方式。由此看来,一个变量可由st...转载 2018-05-20 10:49:40 · 1618 阅读 · 0 评论 -
java中静态代码块> 构造代码块 >构造方法的执行顺序
今天我总结了一下java中静态代码块 构造代码块 构造方法的执行顺序及其注意问题首先要知道静态代码块是随着类的加载而加载,而构造代码块和构造方法都是随着对象的创建而加载当时做了这么一个小案例(想必这个大多数学java的都做过,不知道是否都理解了)class Fu{ static { System.out.println("Fu static code"); } ...转载 2018-05-20 11:10:20 · 86 阅读 · 0 评论 -
java中string 和StringBuffe的replace 区别
String中String replace(char oldChar, char newChar)返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。StringBuffer中:String replace(char oldChar, char newChar)replace(int start, int end, String str)使用给定 St...原创 2018-05-20 16:29:41 · 628 阅读 · 0 评论 -
宽度优先遍历——python
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2018-05-25 10:16# @Author : xxd# @File : test.pyclass Node: def __init__(self,data,left=None,right=None): self.data=data...原创 2018-05-25 12:19:13 · 657 阅读 · 0 评论 -
堆排序
预备知识堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:同时,我们对堆中的结点按层进行编号,将这种逻辑结构映射到数组...转载 2018-05-26 14:54:57 · 102 阅读 · 0 评论 -
n阶矩阵的旋转实现——python 、java
python实现矩阵旋转有一个比较好用的函数zip()if __name__ == '__main__': a=[1,2,3] b=[4,5,6] c=[7,8,9] zipped=zip(a,b,c) for i in zipped: print(i) print('加*号相当于解压') for i in zip(*zip...原创 2018-05-27 16:08:17 · 1605 阅读 · 0 评论 -
java中如何选择合集,以及ArrayList 、LinkedList与python 的list用法对比
如何选择集合?* 在各种Lists中,最好的做法是以ArrayList作为缺省选择。当插入、删除频繁时,使用LinkedList();Vector总是比ArrayList慢,所以要尽量避免使用。* 在各种Sets中,HashSet通常优于TreeSet(插入、查找)。只有当需要产生一个经过排序的序列,才用TreeSet。TreeSet存在的唯一理由:能够维护其内元素的排序状态。* 在各种Maps中...原创 2018-05-27 17:45:16 · 3763 阅读 · 0 评论 -
HashMap实现原理分析
1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删除容易。哈希表那么我们能不能综...转载 2018-05-29 10:43:07 · 116 阅读 · 0 评论 -
单例模式——懒汉、饿汉
单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个Printer...原创 2018-05-29 11:19:25 · 366 阅读 · 0 评论 -
sql语句中 on 与where的区别
题目描述查找所有员工的last_name和first_name以及对应部门编号dept_no,也包括展示没有分配具体部门的员工CREATE TABLE `dept_emp` (`emp_no` int(11) NOT NULL,`dept_no` char(4) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY K...原创 2018-05-24 13:12:08 · 2527 阅读 · 0 评论 -
Java泛型:泛型类、泛型接口和泛型方法
根据《Java编程思想 (第4版)》中的描述,泛型出现的动机在于:有许多原因促成了泛型的出现,而最引人注意的一个原因,就是为了创建容器类。泛型类容器类应该算得上最具重用性的类库之一。先来看一个没有泛型的情况下的容器类如何定义:public class Container { private String key; private String value; public Con...转载 2018-06-28 19:11:08 · 244 阅读 · 0 评论