- 博客(71)
- 资源 (1)
- 收藏
- 关注
原创 LeetCode高频题目(100)汇总-Java实现
LeetCode高频题目(100)汇总-Java实现目录第01-50题【Leetcode-easy-1】 Two Sum【Leetcode-easy-2】 Add Two Numbers【Leetcode-easy-3】 Longest Substring Without Repeating Characters【Leetcode-easy-5】 Longest Palindromic Substr
2017-08-23 19:03:06 11601
原创 【Java进阶】实现自己的ORM框架
【Java进阶】实现自己的ORM框架本文将介绍简单的ORM框架的实现过程。为了能够顺利的读懂本文,你需要有JDBC、注解和反射的基础知识。 先看看效果,一条语句实现插入和更新操作。// 创建SimpleDbPipe对象SimpleDbPipe<Student> dbPipe = new SimpleDbPipe<Student>();// 创建一个带插入数...
2017-08-20 18:58:41 10679 1
原创 华为2017年8月30日校招编程真题2-自定义的26进制和十进制之间互相转换
题目二十六进制和十进制之间转换。 使用字符-十进制之间的关系 a-1 b-2 … z-26 aa-27 ab-28 …. huawei-104680767现在,输入字符串或者整数,要求输出对应的整数或者字符串。思路AC(通过70+%,没查出错误)package test.test2;import org.junit.Test;/** * description: * * @a
2017-08-30 21:51:32 600
原创 华为2017年8月30日校招编程真题01-数字的中文拼音和英文单词之间互相转换
题目将数字的中文拼音和英文单词相互转换, 当有两个连续的数字时,比如“00”,可以输入”DoubleLing”或者”DoubleZero”,但是输出时不可含有”Double”。思路ACpackage test;import java.util.Scanner;/** * description: * * @author liyazhou * @since 2017-08-30 18:03
2017-08-30 21:45:48 800
原创 【华为机试】字符串最后一个单词的长度
【华为机试】字符串最后一个单词的长度题目描述计算字符串最后一个单词的长度,单词以空格隔开。 输入描述: 一行字符串,非空,长度小于5000。 输出描述: 整数N,最后一个单词的长度。示例1 输入 hello world 输出 5思路ACimport java.util.*;public class Main{ public static void main(St
2017-08-29 16:25:40 517 1
原创 各大公司Java面试题分类总结
各大公司Java面试题分类总结Java 面试问题列表包含的主题: 多线程,并发及线程基础 数据类型转换的基本原则 垃圾回收(GC) Java 集合框架 数组 字符串 GOF 设计模式 SOLID (单一功能、开闭原则、里氏替换、接口隔离以及依赖反转)设计原则 抽象类与接口 Java 基础,如 equals 和 hashcode 泛型与枚举 Java IO 与 NIO 常用网
2017-08-25 09:12:14 3715
原创 【Java面试知识点】Java面试知识点汇总
【Java面试知识点】Java面试知识点汇总Java基础知识Java包装类型和字符串Java集合框架Java异常Java多线程与并发库Java IO和NIOJava最佳实践的面试问题Java虚拟机Java6-Java7-Java8的新特性
2017-08-24 20:02:12 4768 1
原创 【Java面试知识点】Java 最佳实践的面试问题
【Java面试知识点】Java 最佳实践的面试问题包含 Java 中各个部分的最佳实践,如集合,字符串,IO,多线程,错误和异常处理,设计模式等等。编写多线程程序的时候你会遵循哪些最佳实践这是我在写Java 并发程序的时候遵循的一些最佳实践: a)给线程命名,这样可以帮助调试。 b)最小化同步的范围,而不是将整个方法同步,只对关键部分做同步。 c)如果可以,更偏向于使用 volatile 而不
2017-08-24 19:41:24 1231
原创 【Java面试知识】Java6-Java7-Java8各个版本的新特性
【Java面试知识】Java6-Java7-Java8各个版本的新特性JDK 1.7 中的新特性Java7 的新特性虽然 JDK 1.7 不像 JDK 5 和 8 一样的大版本,但是,还是有很多新的特性,如 :try-with-resource 语句,这样你在使用流或者资源的时候,就不需要手动关闭,Java 会自动关闭。Fork-Join 池某种程度上实现 Java 版的 Map-reduce。
2017-08-24 15:08:16 2616
原创 【LeetCode】011 Container With Most Water
【LeetCode】011 Container With Most Water题目Given n non-negative integers a1, a2, …, an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line
2017-08-23 21:34:19 940
原创 【LeetCode】005 Longest Palindromic Substring 最长的回文子字符串
【LeetCode】005 Longest Palindromic Substring 最长的回文子字符串题目Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.Example:Input: “babad”Output: “
2017-08-23 20:45:47 1297 1
原创 【LeetCode】003 Longest Substring Without Repeating Characters 最长的没有重复的子字符串
【LeetCode】003 Longest Substring Without Repeating Characters题目Given a string, find the length of the longest substring without repeating characters.Examples:Given “abcabcbb”, the answer is “abc”, which
2017-08-23 19:13:19 1470
原创 【Java基础】整型转换为二进制字符串(无符号右移)
整型转换为二进制字符串(无符号右移)整型转换为二进制字符串,可以使用除2留余法,不过使用无符号右移更加方便。将整型数字转换为二进制字符串,一共32位,不舍弃前面的0/** * 将整型数字转换为二进制字符串,一共32位,不舍弃前面的0 * @param number 整型数字 * @return 二进制字符串 */private String get32BitBinString(int n
2017-08-23 10:28:41 10883
原创 剑指offer 面试题65 滑动窗口的最大值
面试题65 滑动窗口的最大值题目: 给定一个数组和滑动窗口的大小,请找出所有滑动窗口里的最大值。 例如,如果输入数组 {2, 3, 4, 2, 6, 2, 5, 1}及滑动窗口的大小 3, 那么移动存在 6 个滑动窗口,它们的最大值分别为 {4, 4, 6, 6, 6, 5}。package foroffer.top70;import java.util.Arr
2017-08-21 10:49:16 775
原创 【Java多线程与并发库】07 Java中的13个原子操作类
【Java多线程与并发库】07 Java中的13个原子操作类当程序更新一个变量时,如果多线程同时更新这个变量,可能得到期望之外的值,比如变量 i=1, A线程更新 i + 1, B线程也更新 i + 1,经过两个线程操作之后可能 i 不等于 3,而是等于 2。因为 A 和 B 线程在更新变量 i 的时候获得的 i 都是 1,这就是线程不安全的更新操作,通常我们会使用synchronized来解决这个
2017-08-20 15:05:59 564
原创 【Java多线程与并发库】06 多个线程之间共享数据的方式探讨
06 多个线程之间共享数据的方式探讨如果线程执行体相同如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有个共享数据,例如,卖票系统就可以这么做。如果线程执行体不同如果每个线程执行的代码不同,这时候需要用不同的Runnable对象,有如下两种方式实现这些Runnable对象之间的数据共享:将共享数据封装在另外一个对象中,然后将这个对象逐一传递给各个Runna
2017-08-20 13:58:21 472
原创 剑指offer 面试题63 二叉搜索树的第 k 个结点
剑指offer 面试题63 二叉搜索树的第 k 个结点题目: 给定一棵二叉搜索树,请找出其中的第 k 大的结点。 例如下面的二叉树中,按结点数值大小升序顺序,第三个结点的值是 7。 8 / \ 6 10 / \ / \ 5 7 9
2017-08-20 09:47:16 567
原创 【Java多线程与并发库】05 线程范围内共享变量ThreadLocal
【Java多线程与并发库】05 线程范围内共享变量ThreadLocalThreadLocal,是Thread Local Variable,线程局部变量。它的功能非常简单,就是为每一个使用该变量的线程都提供一个变量的副本,是每一个线程都可以独立地改变自己的副本,而不会和其他的线程的副本冲突。从线程的角度看,就好像每一个线程都完全拥有该变量一样。TheadLocal类提供了3个public方法
2017-08-19 19:27:25 659
原创 【Java面试知识点】IO和NIO
【Java面试知识】IO和NIOIO 是 Java 面试中一个非常重要的点。你应该很好掌握 Java IO,NIO,NIO2 以及与操作系统,磁盘 IO 相关的基础知识。下面是 Java IO 中经常问的问题。66)在我 Java 程序中,我有三个 socket,我需要多少个线程来处理?67)Java 中怎么创建 ByteBuffer?68)Java 中,怎么读写 ByteBuffer ?69)Ja
2017-08-19 16:49:55 1592
原创 【Java面试知识点】各大公司Java面试题目汇总-Java基础知识
【Java面试知识点】Java基础知识Java 面试问题列表包含的主题: 多线程,并发及线程基础 数据类型转换的基本原则 垃圾回收(GC) Java 集合框架 数组 字符串 GOF 设计模式 SOLID (单一功能、开闭原则、里氏替换、接口隔离以及依赖反转)设计原则 抽象类与接口 Java 基础,如 equals 和 hashcode 泛型与枚举 Java IO 与 NIO
2017-08-19 16:43:03 4724
原创 【Java面试知识点】Java虚拟机
JVM内存模型、垃圾回收机制、类加载机制 参考Java中垃圾回收有什么目的?什么时候进行垃圾回收?垃圾回收是在内存中存在没有引用的对象或超过作用域的对象时进行。 垃圾回收的目的是识别并且丢弃应用不再使用的对象来释放和重用资源。System.gc()和Runtime.gc()会做什么事情?这两个方法用来提示JVM要进行垃圾回收。 但是,立即开始还是延迟进行垃圾回收是取决于JVM的。finaliz
2017-08-19 16:39:34 819
原创 【Java面试知识】异常
Java中的两种异常类型是什么?他们有什么区别?Java中有两种异常:受检查的(checked)异常和不受检查的(unchecked)异常。不受检查的异常不需要在方法或者是构造函数上声明,就算方法或者是构造函数的执行可能会抛出这样的异常,并且不受检查的异常可以传播到方法或者是构造函数的外面。相反,受检查的异常必须要用throws语句在方法或者是构造函数上声明。 编译时异常(Exception)和运
2017-08-19 16:36:43 2142
原创 【Java面试知识】多线程与并发库
什么是线程池(thread pool)在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁,这就是”池化资源”技术产生的原因。线程池顾名思义就是事先创建若干个可执行的线程放入一
2017-08-19 16:34:21 1065
原创 【Java面试知识点】Java集合框架
【Java面试知识点】Java集合框架对集合的理解(Java集合类框架的基本接口有哪些?) 集合类接口指定了一组叫做元素的对象。集合类接口的每一种具体的实现类都可以选择以它自己的方式对元素进行保存和排序。有的集合类允许重复的键,有些不允许。 Java集合类提供了一套设计良好的支持对一组对象进行操作的接口和类。Java集合类里面最基本的接口有: Collection:代表一组对象,每一个对象都是
2017-08-19 16:25:48 1376
原创 【Java多线程与并发库】04 传统的线程同步通信技术-synchronized/wait/notify/notifyAll
【Java多线程与并发库】04 传统的线程同步通信技术当线程在系统内运行时,线程调度具有一定的透明性,程序通常无法准确控制线程的轮换执行,但我们可以通过一些机制来保证线程协调运行。我们将通过一个例子学习传统的线程同步通信。 假设系统中有两个线程,分别代表存款者和取款者。系统有一个特殊的要求,每当存款者将钱存入到账户后,取款者立即将钱取出,循环地执行存款、取款,但是不允许存款者连续两次存钱,也不允许
2017-08-19 15:35:33 808
原创 【Java多线程与并发库】03 传统线程互斥技术 synchronized
【Java多线程与并发库】03 传统线程互斥技术 synchronized我们会使用模拟打印机的程序来说明线程的互斥技术,如下。打印机出了问题现在我们写一个模拟打印机打印文本的程序。 打印机的打印方法接收到一个字符串,它会依次打印字符串中的每一个字符。 程序如下:/** * 模拟打印机 */class Outputer{ public void output(String cont
2017-08-19 11:09:37 573
原创 操作系统-进程和线程管理
操作系统-进程和线程管理线程的基本概念引入进程的目的,是为了使多道程序并发执行,以提高资源利用率和系统吞吐量;而引入线程,则是为了减小程序在并发执行时所付出的时空开销,提高操作系统的并发性能。线程最直接的理解就是“轻量级进程”,它是一个基本的CPU执行单元,也是程序执行流的最小单元,由线程ID、程序计数器、寄存器集合和堆栈组成。线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有
2017-08-18 22:24:21 3830 2
原创 【Java源码分析】Java复制数组的方法
【Java源码分析】Java复制数组的方法System.arraycopy方法* @param src the source array.* @param srcPos starting position in the source array.* @param dest the destination array.* @param
2017-08-17 22:27:50 463
原创 【Java进阶-Java动态代理与AOP】
【Java进阶-Java动态代理与AOP】01 代理类的作用与原理及AOP概念02 创建动态类及查看其方法列表信息03 创建动态类的实例对象及调用其方法04 实现InvocationHandler的invoke方法05 分析InvocationHandler对象的运行原理06
2017-08-16 22:04:38 215
原创 【Java进阶-Java动态代理与AOP】05 分析InvocationHandler对象的运行原理
【Java进阶-Java动态代理与AOP】05 分析InvocationHandler对象的运行原理分析InvocationHandler对象的运行原理猜想分析动态生成的类的内部代码动态生成的类实现了Collection接口(可以实现若干接口),生成的类有Collection接口中的所有方法和一个如下接口InvocationHandler参数的构造方法。动态代理类的构造方法构造方法接受一个Invoc
2017-08-16 21:08:40 555
原创 【Java进阶-Java动态代理与AOP】04 实现InvocationHandler的invoke方法
实现InvocationHandler的invoke方法InvocationHandler接口中仅有一个抽象方法 public Object invoke(Object proxy, Method method, Object[] args) throws Throwable 其中包含三个参数 proxy: 代理对象,帮助目标对象做事情的对象(卖联想电脑的代理商) meth
2017-08-16 20:53:11 700
原创 【Java源码分析】ConcurrentModificationException并发修改异常分析与解决方案(快速失败与安全失败)
【Java源码分析】ConcurrentModificationException并发修改异常分析与解决方案(快速失败与安全失败)问题描述当执行如下程序时,会抛出异常 java.util.ConcurrentModificationExceptionpublic static void main(String ... args){ Collection<String> coll = new
2017-08-16 16:09:11 544
原创 【Java源码分析】Arrays.asList源码分析
【Java基础】Arrays.asList分析类型转换int[] arr1 = {1, 2, 3};List list1 = Arrays.asList(arr1);System.out.println(list1);Integer[] arr2 = {1, 2, 3};List<Integer> list2 = Arrays.asList(arr2);System.out.println(
2017-08-15 10:08:19 797
原创 【Java进阶-Java动态代理与AOP】03 创建动态类的实例对象及调用其方法
【Java进阶-Java动态代理】03 创建动态类的实例对象及调用其方法创建动态类的实例对象由上一篇文章中分析,动态代理类只有一个构造方法 com.sun.proxy.$Proxy4(java.lang.reflect.InvocationHandler)因此,我们需要了解InvocationHandler这个接口,其中只有一个invoke方法,签名如下: public Object inv
2017-08-14 22:18:24 1014
原创 【Java进阶-Java动态代理与AOP】02 创建动态类及查看其方法列表信息
【Java进阶-Java动态代理】02 创建动态类及查看其方法列表信息创建动态类通过Proxy类的getProxyClass可以生成动态类,其签名如下: Proxy类: getProxyClass(ClassLoader classLoader, Interface… interfaces)//指定类加载器和目标类实现的接口ClassLoader classLoader, 表示类加载
2017-08-14 20:36:42 545
原创 使用百度地图api采集兴趣点数据
使用百度地图api采集兴趣点数据比如,我们想要采集医院的数据信息,主要包括经纬度坐标和电话等信息。首先,我们需要注册百度开发账号,然后创建应用,会得到ak码,在访问数据时需要这个参数。然后,需要使用requests包,通过request = requests.get(url,params=params) 可以请求到数据最后,解析请求到的json数据并保存。json数据格式如下:{ "stat
2017-08-14 14:21:38 10900 6
原创 【Java源码分析】为什么不可以在指定默认容量的ArrayList对象中插入元素
【Java基础】为什么指定默认容量的ArrayList对象不可以在指定位置插入元素问题描述:执行以下代码会报异常 java.lang.IndexOutOfBoundsException: Index: 5, Size: 0@Testpublic void test(){ ArrayList<Integer> list = new ArrayList<Integer>(10); li
2017-08-14 11:21:53 415
原创 【Java进阶-Java动态代理与AOP】01 代理类的作用与原理及AOP概念
【Java进阶-Java动态代理】代理类的作用与原理及AOP概念认识代理代理的概念与作用 生活中的代理,代理商。我们可以通过代理商买东西,而不需要去工厂区买需要的商品。程序中的代理要为已存在的多个具有相同接口的目标类的各个方法增加一些系统功能,例如,异常处理、日志、计算方法的运行时间、事务管理等等。编写一个与目标类具有相同接口的代理类,代理类的个每个方法调用目标类的相同方法,并在调用方法时加
2017-08-13 22:27:33 790
原创 【Java多线程与并发库】02 传统定时器技术
【Java多线程与并发库应用】02 传统定时器技术定时器和定时器任务的用处: 很简单,通过定时的完成某项任务。关于定时器,主要是涉及到Timer和TimerTask两个类。Timer表示定时器,其常用的方法是schedule,调度方法。TimerTask表示定时任务,它是一个抽象类,其中包含一个抽象方法run。传统定时器技术代码演示单次定时操作/** * description: *
2017-08-13 21:55:46 723
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人