- Java 泛型详解:从入门到实战
一、什么是泛型?泛型(Generics)是Java5引入的重要特性之一,它允许在定义类、接口和方法时使用类型参数化。通过泛型,我们可以在编写代码时不指定具体类型,而是在使用时再传入具体的类型。示例:没有泛型的集合操作Mapmap=newHashMap();map.put("key","value");Strings=(String)map.get("key");//必须强制类型转换如果有人插入了I
- 2025年Java后端开发岗面试的高频项目场景题 + 八股文(100w字)
小凡敲代码
javajava面试java八股文Java场景题程序员计算机Java面试题
一、Java八股文高频面试题1.Java基础HashMapvsConcurrentHashMapHashMap:非线程安全,JDK1.8后采用数组+链表/红黑树,扩容时可能死循环(JDK1.7)。ConcurrentHashMap:JDK1.7用分段锁,JDK1.8改用CAS+synchronized优化锁粒度。synchronizedvsReentrantLocksynchronized:JVM
- RPC--Netty客户端实现
高兴达
rpcjavaspring
组件一、channelProvider为netty客户端提供可用的通道的组件,本质上就是维护了一个channelMap,为了线程安全,这里用的是concurrentHashMap(有点连接池的意思,有状态感知获取channel时判断channel状态)1、get方法:根据传入的服务地址(如127.0.0.1:9980)查找对应的channel,如果channel已经关闭或者不可用就清理缓存避免使用
- Java对象哈希值深度解析
小W求学之旅
java哈希算法spring
在Java开发中,对象的哈希值(hashCode())是一个看似基础却暗藏玄机的概念。它不仅影响着HashMap、HashSet等集合框架的性能,还涉及到JVM内存模型和对象相等性判断的核心逻辑。本文将从JVM底层实现、哈希冲突处理、性能优化等多个维度,一起深入理解Java对象哈希值的工作原理。一、JVM如何生成默认哈希值?Java中所有类都继承自Object类,其hashCode()方法是一个本
- spring boot + caffeine使用
月光一族吖
springbootspringjava
一、Caffeine缓存背景Caffeine是一个高性能、可扩展的Java缓存库,由Google的BenManes开发。Caffeine基于ConcurrentHashMap设计,采用了近似LRU(LeastRecentlyUsed,最近最少使用)算法,以实现高速缓存淘汰策略。Caffeine广泛应用于各类Java项目中,作为一种提高数据读取性能的优秀解决方案。二、Caffeine缓存优点与缺点优
- 22. Java JUC源码分析系列笔记-JDK1.8的ConcurrentHashMap
Thinker QAQ
JavaJUC源码分析java笔记开发语言
文章目录1.是什么2.如何使用3.原理分析3.1.构造方法3.1.1.Node3.2.put方法【有加锁】3.2.1.计算key的hash3.2.2.死循环3.2.3.第一次进来table为空,所以需要初始化table3.2.3.1.使用CAS加锁防止多线程同时初始化table3.2.3.2.其他线程让出CPU直到扩容完毕3.2.4.第二次进来table不为空,链表肯定为空【头节点为空】,那么CA
- HashMap和HashSet的区别
weixin_44612246
java开发语言
你可以先百度一下HashMap和HashSet的区别,有很多答案,包括但不限于:HashMap实现了Map接口,HashSet实现了Set接口。HashMap是保存key/value的集合,HashSet是保存对象的结合。HashMap不允许重复的键,但是允许重复的值,HashSet不允许重复的元素。HashMap允许有一个键为空,多个值为空,HashSet允许有一个空值。HashMap中使用pu
- 17.RestClient实现数据聚合功能带过滤条件
卷土重来…
windows
@OverridepublicMap>filters(RequestParamsparam){Map>res=newHashMapbrandList=getAggByName(aggregations,"brandAgg");ListcityList=getAggByName(aggregations,"cityAgg");ListstarList=getAggByName(aggregation
- 通过 Java 调用 ChromeDriver 启动 Chrome 浏览器后,当用户**手动点击按钮**时导致标签页崩溃
Esengnet
java
importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.chrome.ChromeDriver;importorg.openqa.selenium.chrome.ChromeOptions;importorg.openqa.selenium.remote.CapabilityType;importjava.util.HashMap
- 25年银行行业java后端常问高频面试题
小凡敲代码
javajava后端java面试Java面试题互联网大厂Java八股文后端开发
一、技术八股文高频题(银行侧重点)1.Java基础&并发编程HashMap在JDK1.8中的优化?ConcurrentHashMap如何保证线程安全?银行系统对线程安全要求极高,需深入理解CAS+synchronized的实现细节。synchronized和ReentrantLock的区别?银行系统更推荐哪种?银行系统倾向ReentrantLock(可中断、公平锁),需解释AQS原理。Thread
- 2025年Java后端面试必刷题:场景题与八股文高频考点
小凡敲代码
java面试Java面试java面试题互联网大厂java面试java场景题
一、高频八股文面试题Java基础篇HashMap与ConcurrentHashMap的区别HashMap非线程安全,JDK1.8后采用数组+链表/红黑树结构ConcurrentHashMap线程安全,JDK1.8改用CAS+synchronized优化锁粒度synchronized与ReentrantLock区别synchronized是JVM内置锁,自动释放,非公平锁ReentrantLock可
- 深入理解HashMap:从数据结构到高并发战场
达利源
java面试题哈希算法散列表算法
以下是我在财税业务中的自我体会:一、核心矛盾与设计哲学想象一个存放千万级纳税人信息的仓库(Map)。你需要:极速存取:输入ID,瞬间定位到对象。动态扩容:纳税人数量激增时,仓库能自动变大。空间高效:避免仓库大部分区域空置。线程安全(可选):多窗口(线程)同时办理业务不混乱。HashMap的答卷:核心武器:数组+链表/红黑树灵魂算法:哈希函数(HashFunction)扩容策略:负载因子(LoadF
- rabbitmq动态创建交换机、队列、动态绑定,销毁
//缓存已创建的绑定,避免重复声明privatefinalMapcreatedBindings=newConcurrentHashMapargs=newHashMap{@AutowiredRabbitMQServicerabbitMQService;@OverridepublicvoidonApplicationEvent(ListenerContainerConsumerFailedEvente
- leedcode:最大人工岛
卖报的火柴人
算法java
题目:给你一个大小为nxn二进制矩阵grid。最多只能将一格0变成1。返回执行此操作后,grid中最大的岛屿面积是多少?岛屿由一组上、下、左、右四个方向相连的1形成classSolution{publicintlargestIsland(int[][]grid){MapmapIndexLand=newHashMap();//陆地的编号intindex=2;//先标记出岛屿//循环行for(inti
- 高效比较两个list中不同的元素
tanghuan0827
javajavaapi
第四种方法,将其中一个list转为map,并通过containsKey()方法比较,用在单元测试,读取dbf文件到redis队列,测试redis和dbf的是否相同packagecom.test;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;publicclassTest{publicstaticvoid
- HashMap
HansenPole825
哈希算法散列表算法
一、结构1.数组(桶数组)初始容量默认16。数组元素成为桶,每个桶存储链表或红黑树(jdk1.8及以后)。2.链表当不同key的哈希值映射到同一桶式,以链表形式存储。3.红黑树jdk1.8及以后引入红黑树:当链表长度大于等于8且桶数组长度大于等于64式,链表转化为红黑树,查询时间从O(n)降为O(logn)。树节点小于6时退化为链表二、关键机制1.哈希计算(jdk1.8)staticfinalin
- 互联网大厂Java面试实战:严肃面试官与搞笑谢飞机的三轮提问
Fu Dun Yao
Java场景面试宝典Java面试JUCJVM多线程线程池HashMap
互联网大厂Java面试实战:严肃面试官与搞笑谢飞机的三轮提问本文通过一个面试故事,展示了互联网大厂Java求职者与严肃面试官的对话。面试官就Java核心技术、JUC、JVM、多线程、线程池、HashMap、ArrayList、Spring及相关框架、分布式技术、消息队列、中间件、数据库、Linux、Docker、设计模式及DDD等多个技术点,分三轮提问。求职者谢飞机偶尔能准确回答简单问题获得认可,
- 本地缓存之Guava Cache
一介布衣+
中间件缓存guavaspring
1.GuavaCache是什么简介Guavacache是一个支持高并发的线程安全的本地缓存。多线程情况下也可以安全的访问或者更新Cache。这些都是借鉴了ConcurrentHashMap的结果。不过,guavacache又有自己的特性当cache中不存在要查找的entry的时候,它会自动执行用户自定义的加载逻辑,加载成功后再将entry存入缓存并返回给用户未过期的entry,如果不存在或者已过期
- Java集合面试“送命题”合集!这15个问题,你能答对几个?
java干货
java面试python
问题1:ConcurrentHashMap和Collections.synchronizedMap()有什么区别?✅答案:两者都提供线程安全的Map,但实现方式截然不同:•ConcurrentHashMap是为并发而设计的。它使用分段锁(Java7及以前)或CAS+节点级锁(Java8+),允许在不锁定整个Map的情况下进行并发的读和写,性能更高。•Collections.synchronized
- java基础——java集合map详解
喜欢敲代码的程序员
学习java开发语言java
目录一、引言二、Map接口概述1.常用方法2.实现Map的主要类2.1.HashMap2.2.LinkedHashMap2.3.Hashtable(遗留类,已过时)2.4.TreeMap2.5.ConcurrentHashMap3.总结对比4.不常用的实现类4.1.IdentityHashMap4.2.WeakHashMap4.3.EnumMap4.4.ConcurrentSkipListMap5
- 面试必问的Java集合:从源码到实践,那些你未必说清的底层逻辑
码里看花
面试java
在Java面试中,集合框架永远是最核心的考察点之一。无论是刚入门的应届生,还是有一定经验的开发者,"说说ArrayList和LinkedList的区别""HashMap的扩容机制"这类问题总能精准戳中知识盲区。今天这篇文章,我不会照本宣科地罗列集合类的特性,而是结合源码细节、生产踩坑案例、面试高频问题,带你从"会用"升级到"精通"。一、为什么说集合是Java的"地基"?Java集合框架(JavaC
- Java经典面试题(3)
琢磨先生David
java开发语言
1.Java中HashMap的底层数据结构是什么?JDK8之后有哪些重要改进?答案:HashMap的底层数据结构在JDK7及之前是数组+链表,JDK8引入了红黑树优化。具体实现:数组(Bucket数组):存储链表/红黑树的头节点,初始容量为16(默认),必须是2的幂次链表:解决哈希冲突,存储哈希值相同的键值对红黑树(JDK8+):当链表长度超过阈值(默认8)且数组容量≥64时,链表转换为红黑树,将
- Java高级工程师技术面试:从基础到高并发的全面解析
搞Java的小码农
Java技术场景题JavaSpring面试高级工程师技术面试高并发分布式
Java高级工程师技术面试:从基础到高并发的全面解析面试场景设定:面试官:一位严肃专业的互联网大厂技术专家,负责考察求职者的Java技术深度、广度以及解决复杂问题的能力。求职者小兰:一位自信但基础不牢的求职者,尝试用流行词蒙混过关,但经常答非所问或给出明显错误的答案。第1轮:Java核心、基础框架与数据库(3-5个问题)问题1:请解释一下Java中的ConcurrentHashMap与普通Hash
- 深入剖析HashMap:原理、结构、优势及更新过程
未来并未来
java哈希算法散列表
1.哈希函数HashMap的核心在于其使用的哈希函数。哈希函数的作用是将键(Key)转换为一个整数,这个整数将作为数组索引,用于存储和检索键值对。理想的哈希函数应具备以下特点:均匀分布:能够将不同的键均匀分布到哈希表中,减少哈希冲突。计算效率:哈希函数的计算应当快速,以减少插入和查找的时间。在Java中,HashMap通过以下步骤计算哈希值:调用键对象的hashCode()方法获取初始哈希码。通过
- HashMap中keySet()以及values()方法的使用
大然Ryan
java开发hashmapiteratorstringclassc
Map是一个映射,里面的数据是无序的,这一点HashSet是一样的,另外Map最独特的地方是,它是成对出现的。由于Map是一个接口,所以我们来研究一下实现它的类HashMap;HashMaphashMap=newHashMap();hashMap.put("a","zhang");hashMap.put("a","zhang");hashMap.put("a","zhang");System.ou
- 分析下HashMap容量和负载系数,它是怎么扩容的?
心丑姑娘
算法哈希算法java
很好,我们继续深入分析HashMap中容量(capacity)和负载因子(loadfactor),以及它是如何进行扩容(resize)的。一、容量(capacity)与负载因子(loadfactor)容量(capacity)表示哈希表的桶数量,也就是底层数组的长度。初始容量可以通过构造函数指定,如:newHashMapthreshold,就会触发扩容(resize)。✅为什么选0.75?是时间和空
- 对比 HashMap 和 ConcurrentHashMap 扩容逻辑的差异
心丑姑娘
java哈希算法开发语言
HashMap和ConcurrentHashMap在扩容逻辑上有明显的差异,尤其是在并发环境下的处理策略,这是它们核心区别之一。一、总体对比表(JDK8为例)特性HashMapConcurrentHashMap线程安全❌否✅是是否支持并发扩容❌否,单线程触发并执行✅是,多线程协助扩容是否使用锁❌否✅使用synchronized/CAS/volatile等触发扩容时机size>=threshold同
- 分析一下HashMap内部是怎么实现的
心丑姑娘
哈希算法散列表算法
当然可以!我们来深入分析一下Java中HashMap的内部实现机制(以JDK8为主),包括数据结构、核心算法、源码设计、以及适用场景。一、HashMap的核心结构HashMap是基于哈希表实现的Map,底层结构是数组+链表+红黑树的结合体:✅数据结构transientNode[]table;//主体数组,哈希桶(bucket)每个数组元素称为一个“桶”(bucket)。每个桶可能为空,也可能是:链
- 学习日记-spring-day33-6.19
永日45670
学习日记学习
知识点:1.Spring课程概述知识点核心内容重点Spring框架概述轻量级容器框架,封装复杂逻辑,需理解IOC、AOP等核心机制容器框架vs普通框架、封装带来的理解门槛学习难点动态代理、反射、注解、IO操作、XML解析、容器(如ConcurrentHashMap)的综合应用动态代理实现原理、反射与注解的协同机制课程设计亮点通过手动实现Spring底层机制(如IOC、AOP)加深理解,避免源码阅读
- Java后端开发岗高频面试题及答案(面试必看)
禅与Bug的修复艺术
Java面试java面试开发语言Java面试Java后端后端开发程序员
Java面试随着时间的改变而改变。在过去的日子里,当你知道String和StringBuilder的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入。在我初入职场的时候,类似于Vector与Array的区别、HashMap与Hashtable的区别是最流行的问题,只需要记住它们,就能在面试中获得更好的机会,但这种情形已经不复存在。如今,你将会被问到许多Java程序
- java线程Thread和Runnable区别和联系
zx_code
javajvmthread多线程Runnable
我们都晓得java实现线程2种方式,一个是继承Thread,另一个是实现Runnable。
模拟窗口买票,第一例子继承thread,代码如下
package thread;
public class ThreadTest {
public static void main(String[] args) {
Thread1 t1 = new Thread1(
- 【转】JSON与XML的区别比较
丁_新
jsonxml
1.定义介绍
(1).XML定义
扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。
XML是标
- c++ 实现五种基础的排序算法
CrazyMizzz
C++c算法
#include<iostream>
using namespace std;
//辅助函数,交换两数之值
template<class T>
void mySwap(T &x, T &y){
T temp = x;
x = y;
y = temp;
}
const int size = 10;
//一、用直接插入排
- 我的软件
麦田的设计者
我的软件音乐类娱乐放松
这是我写的一款app软件,耗时三个月,是一个根据央视节目开门大吉改变的,提供音调,猜歌曲名。1、手机拥有者在android手机市场下载本APP,同意权限,安装到手机上。2、游客初次进入时会有引导页面提醒用户注册。(同时软件自动播放背景音乐)。3、用户登录到主页后,会有五个模块。a、点击不胫而走,用户得到开门大吉首页部分新闻,点击进入有新闻详情。b、
- linux awk命令详解
被触发
linux awk
awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息
awk处理过程: 依次对每一行进行处理,然后输出
awk命令形式:
awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file
[-F|-f|-v]大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=val
- 各种语言比较
_wy_
编程语言
Java Ruby PHP 擅长领域
- oracle 中数据类型为clob的编辑
知了ing
oracle clob
public void updateKpiStatus(String kpiStatus,String taskId){
Connection dbc=null;
Statement stmt=null;
PreparedStatement ps=null;
try {
dbc = new DBConn().getNewConnection();
//stmt = db
- 分布式服务框架 Zookeeper -- 管理分布式环境中的数据
矮蛋蛋
zookeeper
原文地址:
http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/
安装和配置详解
本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/来获取,Zookeeper 的安装非常简单,下面将从单机模式和集群模式两
- tomcat数据源
alafqq
tomcat
数据库
JNDI(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。
没有使用JNDI时我用要这样连接数据库:
03. Class.forName("com.mysql.jdbc.Driver");
04. conn
- 遍历的方法
百合不是茶
遍历
遍历
在java的泛
- linux查看硬件信息的命令
bijian1013
linux
linux查看硬件信息的命令
一.查看CPU:
cat /proc/cpuinfo
二.查看内存:
free
三.查看硬盘:
df
linux下查看硬件信息
1、lspci 列出所有PCI 设备;
lspci - list all PCI devices:列出机器中的PCI设备(声卡、显卡、Modem、网卡、USB、主板集成设备也能
- java常见的ClassNotFoundException
bijian1013
java
1.java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory 添加包common-logging.jar2.java.lang.ClassNotFoundException: javax.transaction.Synchronization
- 【Gson五】日期对象的序列化和反序列化
bit1129
反序列化
对日期类型的数据进行序列化和反序列化时,需要考虑如下问题:
1. 序列化时,Date对象序列化的字符串日期格式如何
2. 反序列化时,把日期字符串序列化为Date对象,也需要考虑日期格式问题
3. Date A -> str -> Date B,A和B对象是否equals
默认序列化和反序列化
import com
- 【Spark八十六】Spark Streaming之DStream vs. InputDStream
bit1129
Stream
1. DStream的类说明文档:
/**
* A Discretized Stream (DStream), the basic abstraction in Spark Streaming, is a continuous
* sequence of RDDs (of the same type) representing a continuous st
- 通过nginx获取header信息
ronin47
nginx header
1. 提取整个的Cookies内容到一个变量,然后可以在需要时引用,比如记录到日志里面,
if ( $http_cookie ~* "(.*)$") {
set $all_cookie $1;
}
变量$all_cookie就获得了cookie的值,可以用于运算了
- java-65.输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999
bylijinnan
java
参考了网上的http://blog.csdn.net/peasking_dd/article/details/6342984
写了个java版的:
public class Print_1_To_NDigit {
/**
* Q65.输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999
* 1.使用字符串
- Netty源码学习-ReplayingDecoder
bylijinnan
javanetty
ReplayingDecoder是FrameDecoder的子类,不熟悉FrameDecoder的,可以先看看
http://bylijinnan.iteye.com/blog/1982618
API说,ReplayingDecoder简化了操作,比如:
FrameDecoder在decode时,需要判断数据是否接收完全:
public class IntegerH
- js特殊字符过滤
cngolon
js特殊字符js特殊字符过滤
1.js中用正则表达式 过滤特殊字符, 校验所有输入域是否含有特殊符号function stripscript(s) { var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]"
- hibernate使用sql查询
ctrain
Hibernate
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.hibernate.Hibernate;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.Transa
- linux shell脚本中切换用户执行命令方法
daizj
linuxshell命令切换用户
经常在写shell脚本时,会碰到要以另外一个用户来执行相关命令,其方法简单记下:
1、执行单个命令:su - user -c "command"
如:下面命令是以test用户在/data目录下创建test123目录
[root@slave19 /data]# su - test -c "mkdir /data/test123" 
- 好的代码里只要一个 return 语句
dcj3sjt126com
return
别再这样写了:public boolean foo() { if (true) { return true; } else { return false;
- Android动画效果学习
dcj3sjt126com
android
1、透明动画效果
方法一:代码实现
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.fragment_main, container, fals
- linux复习笔记之bash shell (4)管道命令
eksliang
linux管道命令汇总linux管道命令linux常用管道命令
转载请出自出处:
http://eksliang.iteye.com/blog/2105461
bash命令执行的完毕以后,通常这个命令都会有返回结果,怎么对这个返回的结果做一些操作呢?那就得用管道命令‘|’。
上面那段话,简单说了下管道命令的作用,那什么事管道命令呢?
答:非常的经典的一句话,记住了,何为管
- Android系统中自定义按键的短按、双击、长按事件
gqdy365
android
在项目中碰到这样的问题:
由于系统中的按键在底层做了重新定义或者新增了按键,此时需要在APP层对按键事件(keyevent)做分解处理,模拟Android系统做法,把keyevent分解成:
1、单击事件:就是普通key的单击;
2、双击事件:500ms内同一按键单击两次;
3、长按事件:同一按键长按超过1000ms(系统中长按事件为500ms);
4、组合按键:两个以上按键同时按住;
- asp.net获取站点根目录下子目录的名称
hvt
.netC#asp.nethovertreeWeb Forms
使用Visual Studio建立一个.aspx文件(Web Forms),例如hovertree.aspx,在页面上加入一个ListBox代码如下:
<asp:ListBox runat="server" ID="lbKeleyiFolder" />
那么在页面上显示根目录子文件夹的代码如下:
string[] m_sub
- Eclipse程序员要掌握的常用快捷键
justjavac
javaeclipse快捷键ide
判断一个人的编程水平,就看他用键盘多,还是鼠标多。用键盘一是为了输入代码(当然了,也包括注释),再有就是熟练使用快捷键。 曾有人在豆瓣评
《卓有成效的程序员》:“人有多大懒,才有多大闲”。之前我整理了一个
程序员图书列表,目的也就是通过读书,让程序员变懒。 写道 程序员作为特殊的群体,有的人可以这么懒,懒到事情都交给机器去做,而有的人又可
- c++编程随记
lx.asymmetric
C++笔记
为了字体更好看,改变了格式……
&&运算符:
#include<iostream>
using namespace std;
int main(){
int a=-1,b=4,k;
k=(++a<0)&&!(b--
- linux标准IO缓冲机制研究
音频数据
linux
一、什么是缓存I/O(Buffered I/O)缓存I/O又被称作标准I/O,大多数文件系统默认I/O操作都是缓存I/O。在Linux的缓存I/O机制中,操作系统会将I/O的数据缓存在文件系统的页缓存(page cache)中,也就是说,数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。1.缓存I/O有以下优点:A.缓存I/O使用了操作系统内核缓冲区,
- 随想 生活
暗黑小菠萝
生活
其实账户之前就申请了,但是决定要自己更新一些东西看也是最近。从毕业到现在已经一年了。没有进步是假的,但是有多大的进步可能只有我自己知道。
毕业的时候班里12个女生,真正最后做到软件开发的只要两个包括我,PS:我不是说测试不好。当时因为考研完全放弃找工作,考研失败,我想这只是我的借口。那个时候才想到为什么大学的时候不能好好的学习技术,增强自己的实战能力,以至于后来找工作比较费劲。我
- 我认为POJO是一个错误的概念
windshome
javaPOJO编程J2EE设计
这篇内容其实没有经过太多的深思熟虑,只是个人一时的感觉。从个人风格上来讲,我倾向简单质朴的设计开发理念;从方法论上,我更加倾向自顶向下的设计;从做事情的目标上来看,我追求质量优先,更愿意使用较为保守和稳妥的理念和方法。
&