J2EE基础知识
Frank Lin
learning, thinking and using
展开
-
新手程序猿如何在工作中解决问题
好多猿类朋友是刚工作或者刚入行不久的程序猿,这个行业的从业人员在外界看来,薪水高,每天做着高大上的编程工作,业务和产品人眼里,他们无所不能,任何需求都可以实现,实现不了那就是你技术不行。服不服,不服也不行,除非你混到高高在上的架构师,CTO或者....我也不知道了。总之只要你是一个像我一样普普通通的小程序员,那你就不得不面临日常惆怅蛋疼地解决问题的问题。其实解决问题的思路相比大家都知晓:你遇到的...原创 2020-04-13 08:41:08 · 496 阅读 · 0 评论 -
排序之快速排序java quicksort
不多说直接上代码:package jsoup;import java.util.Arrays;public class QuickSort { public static void main(String[] args){ int[] arr = {4,5,1,2,8,13,6,56,100,47,36,34}; quickSort(arr, 0, 11);原创 2016-12-20 18:55:21 · 321 阅读 · 0 评论 -
算法之递归(Java语言)待更不完善
递归初给我的印象是:哦,实现的这么巧妙,代码量如此的少,嗯,看懂了。然后信心满满。下一次碰到个问题,心想:嗯,实现的优雅点,用递归,嗯,这样写,咦,到底循环到哪一个子递归了,完,全晕。我不否认有的人很适合理解递归的思想,但有的人像我一样可能就理解起来比较费劲,这并不否认也无需怀疑自己,因为据我所知,好多开发能力强的人不见得就能写的一手好递归,废话不多说,看一下用递归写的两个排列和组合的栗子:排列原创 2017-01-08 16:13:55 · 313 阅读 · 0 评论 -
一个日期时间段有交集求并集的问题
同学工作中遇到的,问题大概是:输入一系列时间段(开始日期start,结束日期end)返回结果为:时间段若有交集则取其并集,无交集则返回原时间段,如输入:20160101,20160103;20160102,20160105;20160109,20160110;20160110,20160110;则返回:20160101,20160105;20160109,20160110;在这里我将输入的格式定原创 2017-01-08 16:20:41 · 4536 阅读 · 3 评论 -
并发多线程之死锁-----哲学家吃饭问题
该例子说明了4点出现死锁需要同时满足的条件:互斥条件:任务使用的资源至少有一个是不能共享的。这里,一根chopstick(筷子)一次就只能让一个philosopher(哲学家)使用。至少有一个任务它必须持有一个资源且正在等待获取另一个当前被别的任务持有的资源,也就是说,要发生死锁,philosopher必须拿着一根筷子并且等待另一根筷子。资源不能被任务抢占,任务必须把资源释放当作普通事件。ph原创 2017-01-15 21:29:58 · 2033 阅读 · 0 评论 -
关于那道考察软件开发者编程素质和逻辑思维的题目(更新)
首先我承认,我没有很好的算法分析能力,最近被几道看似简单却包含着一些算法的题目搞得心情很不爽,但回过头想想,只因笔下功夫太少,递归可能是算法中稍微抽象点的形式,看似几行短短的代码,却能够在一些问题上扮演举足轻重的角色,下面我参考了开发者头条上考察一个软件开发者编程思维的题目,大致是这样的:给出一个方法签名sqrt(),要求结果是16的开平方并且误差范围在±0.5之间的数,当然,这里我只是举个栗子,原创 2016-12-31 11:41:56 · 2114 阅读 · 0 评论 -
前后端交互问题总结--JAVA/Servlet + HTML/Jquery/Ajax
工作业务中遇到的,拿来放这总结下:以免自己以后有没有了思路: 前后端交互问题现在来看自己能够想到的无非两种:后端接受请求 处理业务逻辑并且负责页面的跳转和数据的显示前端展示数据,jquery+ajax请求后端数据库资源(后端主要是接受传参,业务处理后返回数据),前端拿到数据后负责页面的局部更新和数据展示一前一后各有利弊:第一种情况,后端为大,前端仅仅把参数传过来,后端就进行一系列的原创 2017-03-18 21:38:34 · 2737 阅读 · 0 评论 -
HttpServlet及Servlet Container原理总结
Servlet顾名思义,服务器端应用程序,HttpServlet是用来处理基于Http的请求的服务器端程序,现在大部分请求都是基于Http的; HttpServlet是一个继承自Servlet的抽象类HttpServlet API,继承自该类的subclass子类必须实现如下至少一个抽象方法 A subclass of HttpServlet must override at least o原创 2017-02-27 16:28:21 · 1811 阅读 · 0 评论 -
多线程 并发的认识
Java中的多线程是一种抢占机制而不是分时机制。抢占机制指的是有多个线程处于可运行状态,但是只允许一个线程在运行,他们通过竞争的方式抢占CPU。java中多线程的实现方法主要由两种:继承 Thread 类实现runnable接口但实际开发中主要以2为主,因为实现接口优势有: 可以避免由于 Java 的单继承特性而带来的局限;增强程序的健壮性,代码能够被多个线程共享,代码与数据原创 2016-12-03 20:43:17 · 365 阅读 · 0 评论 -
Form表单的二种提交方式(Spring后台controller处理)
这里总结下form表单的二种常见的提交方式,所用的模块为前端jquery+thymeleaf; 后台Springboot。第一种:提交条转型: 顾名思义,form一旦submit,默认提交表单并跳转thymeleaf页面:<!DOCTYPE HTML><html xmlns:th="http://www.thymeleaf.org"><head> <title>Getting Star原创 2017-08-18 10:01:16 · 8429 阅读 · 0 评论 -
java中到底是值传递还是引用传递
这个问题不用考虑太复杂,答案是值传递。首先java中的数据类型有两种:基本类型和引用类型基本类型的传递举个栗子:public class App { public static void main( String[] args ) { Integer i = 10; changeInteger(i); System.out.print...原创 2019-02-20 11:09:30 · 200 阅读 · 0 评论 -
数据结构之HashMap的实现
Map是数据结构中常用的键值对储存结构,和散列结合的hashMap能够快速的进行查找,这得益于其利用了hashCode进行访问的原因,下边给出一个自己实现的hashMap结构(最后的main是为了测试)。package jsoup;import java.util.LinkedList;import java.util.List;import java.util.ListIterator;im原创 2016-12-26 18:29:00 · 313 阅读 · 0 评论 -
40个Java多线程问题总结
http://www.imooc.com/article/3306转载 2016-12-04 10:03:41 · 244 阅读 · 0 评论 -
数据结构之Tree
今天简单梳理一下数结构,树这种数据结构中常用的是二叉查找树,Avl平衡树,展开树,B树(我的理解是常用频率依次递减,红黑树目前还没有接触到,后续补充更新)。二叉树:binary tree,即每个节点至多有两个儿子(子树),声明如下图,即由该节点的element信息加上两个到其他节点的引用(left and right)组成的结构。class BinaryNode { Object原创 2016-12-25 20:21:11 · 465 阅读 · 0 评论 -
常见java上机题
第一题、 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩规则: 1、仅压缩连续重复出现的字符。比如字符串”abcbc”由于无连续重复字符,压缩后的字符串还是”abcbc”。 2、压缩字段的格式为”字符重复的次数+字符”。例如:字符串”xxxyyyyyyz”压缩后就成为”3x6y原创 2016-12-17 22:39:10 · 9337 阅读 · 1 评论 -
通过键盘输入一串字母(a~z,A~Z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。
public static String filter(String str) { char[] arr = str.toCharArray(); List<Character> list = new ArrayList<Character>(); for(char chara : arr){ if(list.contains(原创 2016-12-16 20:02:57 · 2686 阅读 · 0 评论 -
java面试打击后归来深刻总结分析
1、String和StringBuffer问题:面试管:用String和操作符“+”来连接就可以了,干嘛还用StringBuffer? 我:懵………………………. 检讨:for Example:String result =”aaa” +”bbb” +”ccc”; vs String result = new StringBuffer.append(“aaa”).appen原创 2016-12-16 14:27:15 · 805 阅读 · 0 评论 -
一个关于传入参数为null的问题
面试遇到的:代码如下:public class Test { public static void main(String[] args){ new Test().new A().get(null); } class A{ public void get(Object o){ System.out.println("objc原创 2016-12-16 11:46:35 · 10523 阅读 · 0 评论 -
找出字符串中出现次数最多的字母和出现的次数
package jsoup;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.LinkedList;/* * * 找出字符串中出现最多的字母和次数 * author linfujian * */public class FindMax {原创 2016-12-14 23:13:57 · 2873 阅读 · 0 评论 -
拆分字符串,字符串中含有逗号和数字,对数字排序并输出
package jsoup;import java.util.Arrays;public class OrderNums { public static void main(String[] args){ String str = "3,2,1,2,21312,12,23,12,32,12,5,4,5"; //System.out.println(OrderU原创 2016-12-14 23:13:26 · 1919 阅读 · 0 评论 -
0~9的计算器功能实现
package jsoup;import java.util.ArrayList;import java.util.List;public class Compute { public static void main(String[]args){ String text= "3*5+1-9/3+3-2"; List<List> li = extract(te原创 2016-12-14 23:12:39 · 890 阅读 · 0 评论 -
网络爬虫
1、首先是运行时的main入口:package jsoup;public class DoubanProgram { public static void main(String[] args){ JsoupUtil ju = JsoupUtil.getInstance(); ju.getDoubanProgram(); }}2、想要爬虫的网站url原创 2016-12-06 12:49:36 · 252 阅读 · 0 评论 -
TCP/IP协议认识
一、网络通信协议:即网络中两台计算机需要通信,则需要定义一种‘语言’,让双方都能互相理解。Tcp/Ip通信协议便是这种交流的语言; 1.1 协议的分层: 自上而下:应用层(http、ftp)、传输层(Tcp、Udp)、网络层(IP)、数据链路层/物理层; 1.2协议的使用: a机器和b机器通过网络交流,a的应用层的发送数据经过层层包装(应用层——传输层——网络层——物理层)到达b,b通过解包原创 2016-12-06 12:38:48 · 309 阅读 · 0 评论 -
容器内对象的排序
基本类型如int形成的容器如list可以直接用Collections.sort(list)排序,那么容器内的对象排序呢?其实就是两种实现方法,对象实现comparable接口并重写compareTo()方法;另一种是写一个相关联的comparator,将其以Collections.sort(list,comparator)传入参数的形式传入: 以下以一个Person类作为栗子:package js原创 2016-12-21 22:59:54 · 605 阅读 · 0 评论