java基础
hqh1357054948
这个作者很懒,什么都没留下…
展开
-
ArrayList和linkedList的区别与联系
数组线程安全底层数据结构插入和删除操作是否可以随机访问内存空间线程安全 ArrayList和linkedList都不是线程安全的数组,因为都不同步。底层数据结构 ArrayList底层使用的是object数组,linkedList底层使用的是双向链表。插入和删除操作 ArrayList使用数组存储,所以插入和删除操作会受到元素位置的影响,时间复杂度为0(N-1)。 LinkedL...转载 2019-06-10 15:48:41 · 211 阅读 · 0 评论 -
字符串归一化
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串归一化程序,统计字符串中相同字符出现的次数,并按字典序输出字符及其出现次数。例如字符串"babcc"归一化后为"a1b2c2"。import java.io.BufferedReader;import java.io.InputStreamReader;public class Main { public stat...原创 2019-07-26 14:51:06 · 830 阅读 · 0 评论 -
回文字符串
给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。("回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。)具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。可用C++,Java,C#实现相关代码逻辑输入描述:import java.io.BufferedReader;import java.io.Inpu...原创 2019-07-26 16:01:21 · 144 阅读 · 0 评论 -
最大公共子串
题目描述给定两个字符串,请编写代码,输出最长公共子串(Longest Common Substring),是指两个字符串中的最长的公共子串,要求子串一定是连续。输入描述:文本格式,2个非空字符串(字母数字组成),2个字符串以","英文逗号分割,字符串长度均小于等于100。输出描述:整形,为匹配到的最长子串长度import java.io.*; public class Main{...原创 2019-07-26 16:47:16 · 98 阅读 · 0 评论 -
递归法例子地鼠逃跑机会
有一只地鼠不小心跑进了一个m*n的矩形田地里,假设地鼠在这块田地的初始位置为(x,y),并且每次只能向相邻的上下左右四个方向移动一步,那么在最多移动K次的情况下,有多少条路径可以逃出这片田地(一旦出去田地的边界就不能再往回走)?下面是样例示意图:import java.util.Scanner;public class Main { public static int coun...原创 2019-07-22 19:32:04 · 247 阅读 · 0 评论 -
访问一个网站的全过程
1、域名解析成ip地址2、与目的主机进行TCP连接(三次握手);3、发送与收取数据(浏览器与目的主机开始HTTP访问过程);4、与目的主机断开TCP连接(四次挥手);域名解析成ip地址通过dns服务器完成。域名解析使用的是UDP协议。(user datagram protocol)与目的主机进行TCP连接三次握手:Transmission Control Protocol 传输控...翻译 2019-07-31 16:48:30 · 1996 阅读 · 0 评论 -
0-1背包问题--动态规划
问题描述:一个背包的总容量为V,现在有N类物品,第i类物品的重量为weight[i],价值为value[i]那么往该背包里装东西,怎样装才能使得最终包内物品的总价值最大。该方法使用dp[i][j]来存储中间最大值。dp[i][j]表示前i件物品装入容量为j的背包所得的总价值最大值。求动态规划dp[i][j]的状态转移方程。当出现第i件物品时:1、若w[i]>v,这种情况下该i件物...转载 2019-07-27 14:18:08 · 378 阅读 · 0 评论 -
快速排序
https://blog.csdn.net/tobemlw/article/details/79033238转载 2019-08-13 16:44:00 · 94 阅读 · 0 评论 -
Mysql乐观锁与悲观锁
乐观锁:总是认为不会产生并发问题,每次去取数据的时候总是认为不会有其他线程对数据修改,所以没有上锁。但是在更新时会判断其他线程之前是否更改过数据,一般使用版本号机制或者CAS操作实现。例如:每次更新时update在条件后再附加一个时间为条件:1update user_info set password='somelog' where username='somelog' and time...翻译 2019-08-07 15:30:11 · 91 阅读 · 0 评论 -
http和https的主要区别
**http和https的主要区别:**1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进...翻译 2019-08-07 16:22:46 · 464 阅读 · 0 评论 -
面试题:
进程间的通讯方式?管道消息队列信号量共享内存线程同步方式?(同步:按预定的先后次序进行运行)1、互斥对象:只有拥有互斥对象的线程才有访问公共资源的权限。因为互斥对象只有一个,所以能保证公共资源不会同时被多个线程同时访问。当前拥有互斥对象的线程处理完任务后必须将线程交出,以便其他线程访问该资源。2、事件对象:通过通知操作的方式来保持线程的同步,还可以方便实现对多个线程的优先级比较的操作...原创 2019-08-10 21:36:37 · 132 阅读 · 0 评论 -
回溯算法模板
try(int i)3: {4: if(i>n)5: 输出结果;6: else7: {8: for(j = 下界; j <= 上界; j=j+1) // 枚举i所有可能的路径9: {10: if(fun(j)) // 满足限界函数和约束条件11: {...原创 2019-08-12 15:16:31 · 1170 阅读 · 0 评论 -
创建链表
import java.io.BufferedReader;import java.io.InputStreamReader;import java.math.BigDecimal;import java.util.ArrayList;import java.util.Arrays;class ListNode { int val; ListNode next; ...原创 2019-08-13 10:52:50 · 128 阅读 · 0 评论 -
浅谈IOC与DI
IOCInversion Of Control即控制反转,不是一种技术,而是一种设计思想。在java开发中,ioc意味着你将设计好的对象交给容器去控制,而不是传统的在你的对象内部直接控制。 理解ioc必须明白谁控制谁,怎么反转的,为什么叫反转。谁控制谁在传统的javase中,我们直接在对象内部通过new方法创建对象,是程序主动去创建依赖对象,而IOC是有专门的容器去创建对象的,也就是IOC容...转载 2019-07-22 15:58:58 · 126 阅读 · 0 评论 -
浅谈单例模式
模式定义单例模式确保某一个类只有一个实例,并且自动化实例,向整个系统提供该实例,这个类称为单例类,具有全局访问的方法。单例模式三要点:1、该类只有一个实例化 2、该类自动实例化 3、该类自动提供给全系统唯一的实例。单例模式包含的角色只有一个,就是单例类——Singleton单例类拥有一个私有构造函数,确保用户无法通过new关键字直接实例化它。该模式中包含一个静态私有成员变量与静态公有的...转载 2019-07-22 15:00:40 · 142 阅读 · 0 评论 -
HashMap和HashTable的区别
是否线程安全hashMap不是线程安全的,HashTable是线程安全的,HashTable 内部的方法基本都经过synchronized 修饰。效率hashMap效率要高,HashTable基本被淘汰了,nullHashMap可以有null作为键来对应value,HashTable不可以。容量HashMap的初始容量是16,后期扩容为先前容量的两倍,HashTable的初始容量为1...转载 2019-06-10 16:17:23 · 82 阅读 · 0 评论 -
hashcode方法和equals方法比较
hashcode方法和equals方法的比较1、equals和hashcode方法都是判断java中对象是否相等的。2、java中equal是方法判断对象是否相等时正确的全面的,但比较消耗性能,hashcode方法是生成一个hash值来比较,效率较高,但是不一定准确。3、hashcode相等不能说明equals相等,equals相等可以说明hashcode相等,一般重写一个对象hashcod...转载 2019-07-14 15:01:59 · 151 阅读 · 0 评论 -
throws和throw的区别
java异常处理throw和throws的区别throws是用来声明一个方法可能抛出的异常信息,声明但不处理,出现异常他会往上传递异常,谁调用这个方法谁处理这个异常class Math{2 public int div(int i,int j) throws Exception{3 int t=i/j;4 return t;5 ...转载 2019-07-16 15:48:50 · 118 阅读 · 0 评论 -
HashMap的底层原理
hashmap的工作原理HashMap基于hashing原理,通过get()和put()方法来存储和获取对象,当我们将键值对传递给put()方法时,他调用键对象的hashcode方法来计算hashcode值,然后找到bucket位置来存储对象,当获取对象时吗,通过键对象的equals方法找到正确的键值对,然后返回值对象,HashMap使用链表来解决碰撞问题,当发生碰撞了,对象将会储存在链表的下一...转载 2019-07-23 16:25:26 · 82 阅读 · 0 评论 -
JDBC详解
JDBC java database connectionjdbc是java和数据库之间的桥梁,能够执行sql语句,由java编写的类和接口组成。jdbc操作步骤1、装载相应的数据库驱动并完成初始化导入数据库专用的jar包初始化驱动try {//class.forName()初始化驱动Class.forName(“com.mysql.jdbc.Driver”); } catch...转载 2019-07-17 10:31:09 · 85 阅读 · 0 评论 -
计算机网络概述
结点:网络中的结点可以是计算器,集线器,交换机,路由器等。网络结点就是网络单元,他是计算机网络中的各种数据处理设备,数据通信控制设备以及数据终端设备。网络结点可分为转结点和访问结点,支持网络连接性能的称为转结点,它通过通信线路来链接和传递信息,访问结点是信息交换的源节点和目标结点,它起到信源和信宿的作用,例如终端、主计算机。链路:从一个结点到另一个结点的一段物理线路,中间没有任何其他交点。...转载 2019-07-29 11:28:24 · 173 阅读 · 0 评论 -
redis
什么是redisredis是完全开源免费的,高性能的key-value内存数据库。整个数据库全加载在内存中进行操作,因为是纯内存操作,所以redis的性能十分优越,每秒能处理超过10w次读写操作,是已知目前最快的key-value数据库。此外,redis支持的数据类型有很多种,redis支持哪几种数据类型string(字符串),hash(哈希),list(列表),set(集合)及zset(s...转载 2019-07-24 11:36:05 · 76 阅读 · 0 评论 -
多线程并发同步问题及解决方案
线程并发同步线程同步其核心就在一个同步,即协同、配合,也就是按照预定顺序先后的运行,也就是你做我等,你做完并返回,然后我开始运行。线程同步就是当线程发出一个功能调用时,在没得到结果前不会返回,且其他线程不能调用该方法。在多线程里面有些敏感数据不允许被多个线程同时访问,使用线程同步就是要保证在一个时间内只有一个线程访问一个数据,以此来保证数据的正确性。线程同步中可能存在的安全隐患解决方法1...转载 2019-07-20 09:46:08 · 2782 阅读 · 0 评论 -
jvm内存空间
jvm内存空间1、程序计数器程序计数器是java字节码文件执行过程中的计数器,字节码计数器通过改变数值来选取下一条需要执行的字节码,分支、循环、跳转、异常处理、线程恢复等等都需要依赖这个程序计数器完成。同时为了线程切换时能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器程序计数器作用:字节码解释器通过改变程序计数器数值来依次选取下一条需要执行的字节码,从而实现代码的流程控制。在...转载 2019-07-25 14:43:51 · 115 阅读 · 0 评论 -
jvm垃圾回收
java的自动内存管理主要是针对对象内存的回收和对象内存的分配、java自动内存管理中最重要的是堆内存中对象的分配和回收。现在收集器基本采用分代垃圾收集算法,所以java堆还可以分为新生代和老生代,分类的原因是为了更好的回收内存或者分配内存。对象内存分配原则1、对象优先分配在新生代中。2、大对象直接进入了老年代。大对象就是需要大量连续内存空间的对象(字符串,数组)。3、长期存在的对象将...转载 2019-07-25 16:43:41 · 75 阅读 · 0 评论 -
浅谈动态规划
动态规划动态规划通过把原问题分解为相对简单的子问题来解决复杂问题,动态规划常常适用于有重叠子问题和最优子结构性质的问题。基本思想解决一个问题时,我们可以先解决该问题的子问题,然后合并子问题来得到所求的解。典型问题1、走楼梯或者跳格子问题假设你正在玩跳格子(所有格子排成一个纵列)游戏。需要 跳完n 个格子你才能抵达终点。每次你可以跳 1 或 2 个格子。你有多少种不同的方法可以到达终点呢...转载 2019-07-21 21:39:53 · 93 阅读 · 0 评论 -
计算机网络5层结构
物理层1、基本术语:数据(data):运行消息的实体。信号(signal):数据的电磁或者电气表现。或者:信号是适合在传输介质上传输的对象。码元(code):在使用时间域(或简称为时域)的波形来表示数字信号时,代表不同离散数值的基本波形。单工(simplex):只能有单方向的通信而没有反方向的交互。半双工(half duplex):通信的双方都可以发送消息,但不能双方同时发送...翻译 2019-07-30 22:09:48 · 571 阅读 · 0 评论 -
java除法保留小数点后几位数的方法
方法原创 2019-09-21 21:30:42 · 1242 阅读 · 0 评论