程序员必须会手写的Java代码

面试题手写代码(很实用) 这是我面试了十三家所总结的手写代码题,希望能帮助您! 立即下载

要是不会默写一下这几段代码真的出去别说自己是程序员,基本上属于面试必考。

A.通过接口回调进行类与类直接参数的传递

1.定义一个接口,里面的代码是抽象方法

public interface ScrollVIewListener{
    //抽象方法:就是把我们这个类想要暴露出去实现的具体逻辑和传递对应参数(view的监听对象要有)
    void onScrollChanger(ObservableScrollView scrollView,int l, int t, int oldl, int oldt );

}

2.定义一个接口的成员变量,假的对象(接口不能创建对象)

private ScrollVIewListener mScrollVIewListener;

3.提供方法,让外界可以设置ScrollView的监听对象,也就是我们要暴露出去的唯一方法

public void setScrollVIewListener(ScrollVIewListener scrollVIewListener){
    mScrollVIewListener = scrollVIewListener ;
}

4.接口的具体使用,可以狸猫换太子的应用逻辑

if (mScrollVIewListener !=null){
    mScrollVIewListener.onScrollChanger(this,l,t,oldl,oldt);
}

5.外部创建实现接口的对象,使用回调实现接口的对象() ycf=new 实现接口的对象();

ycf.setScrollVIewListener(this);

B.单例模式(饿汉式,懒汉式)

1.饿汉式

//饿汉式 
public class Singleton {

	private final static Singleton INSTANCE = new Singleton();
	
	private Singleton(){}
	
	public static Singleton getInstance(){ 
    	return INSTANCE; 
	} 
}

优点:这种写法比较简单,就是在类装载的时候就完成实例化。避免了线程同步问题。

缺点:在类装载的时候就完成实例化,没有达到懒加载的效果。如果从始至终从未使用过这个实例,则会造成内存的浪费。

2.懒汉式

//懒汉式
public class Singleton {

    private static volatile Singleton singleton;
    
    private Singleton() {}
    
    public static Singleton getInstance() {
        if (singleton == null) {
            synchronized (Singleton.class) {
                if (singleton == null) {
                    singleton = new Singleton();
                }
            }
        }
        return singleton;
    }
}

优点:线程安全;延迟加载;效率较高:进行了两次if (singleton == null)检查,这样就可以保证线程安全了。这样,实例化代码只用执行一次,后面再次访问时,判断if (singleton == null),直接return实例化对象。

C.冒泡排序


/**

 * 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 

* 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 

* 针对所有的元素重复以上的步骤,除了最后一个。

* 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 

* @param numbers 需要排序的整型数组 */


public static void bubbleSort(int[] numbers){

 	int temp = 0;

 	int size = numbers.length;

 	for(int i = 0 ; i < size-1; i ++){

	 	for(int j = 0 ;j < size-1-i ; j++){

		 	if(numbers[j] > numbers[j+1]) {

				//交换两数位置
				temp = numbers[j];
				numbers[j] = numbers[j+1];
				numbers[j+1] = temp;
			}
		}
 	}
}

D.二分法查找

public static int binary(int[] array, int value){

	int low = 0;

	int high = array.length - 1;

	while(low <= high){

		int middle = (low + high) / 2;

		if(value == array[middle]){
		    return middle;
    	}

		if(value > array[middle]){
		    low = middle + 1;
		}
		
		if(value < array[middle]){
		    high = middle - 1;
		}
	}
	return -1;
}

//具体使用
public static void main(String[] args){

	int[] a = {1, 2, 3, 4, 5, 6, 7, 8, 9};
	
    int value = binary(a, 9);
    
	System.out.println(value);
}

E.快速排序

/**
     * 查找出中轴(默认是最低位low)的在numbers数组排序后所在位置
     * @param numbers 带查找数组
     * @param low   开始位置
     * @param high  结束位置
     * @return  中轴所在位置 */
    public static int getMiddle(int[] numbers, int low,int high){
    
        int temp = numbers[low]; //数组的第一个作为中轴
        
        while(low < high){
        
        	while(low < high && numbers[high] > temp){
	            high--;
       		}
       		
	        numbers[low] = numbers[high];//比中轴小的记录移到低端
        	
        	while(low < high && numbers[low] < temp){
	            low++;
    	    }
        
        	numbers[high] = numbers[low] ; //比中轴大的记录移到高端
        }
        
        numbers[low] = temp ; //中轴记录到尾
        
        return low ; // 返回中轴的位置
    }

参考网址

单例模式:https://www.cnblogs.com/zhaoyan001/p/6365064.html

排序:https://www.cnblogs.com/0201zcr/p/4763806.html

【Telephony】APN配置及加载流程&项目实践(AOSP) 学习APN关键是学会明白apns-conf.xml文件各个参数的意思,然后熟悉TelephonyProvider是如何读取文件创建数据库的,譬如数据库表的约束、文件的读写顺序等,还有读取后的ApnSetting的二次定制以及显示(例如屏蔽xcap等)。虽然一般在项目中APN的需求很简单,就是按照客户提供的APN参数添加上配置,或者在显示屏蔽一些参数,但是项目维护的过程中APN的问题也是比较多的。 阅读详情

相关推荐

Python 驱动 CAD 二次开发:从零搭建自动化绘图环境

本文详细介绍了如何利用Python进行CAD二次开发,实现自动化绘图。通过win32com库建立Python与CAD软件的通信,文章从环境搭建、连接CAD、操作文档到核心绘图与批量处理,提供了完整的实战指南。该方法能显著提升机械设计、建筑绘图等领域的重复性工作效率,将创造力从繁琐劳动中解放出来。

weixin_29093169的博客 1226

【JAVA手写系列】(持续更新)

JAVA手写系列前言生产者消费者问题 前言 这篇文章主要是以JAVA代码展示一些基础及面试要求手写的代码段,想到啥就写啥,也将持续更新,觉得还OK的话,可以放在收藏夹吃灰。 生产者消费者问题 生产者消费者问题(英语:Producer-consumer problem),也称有限缓冲问题(英语:Bounded-buffer problem),是一个多线程同步问题的经典案例。该问题描述了两个共享固定大小缓冲区的线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定量

qq_42561396的博客 1535

ComfyUI-controlnet控制出图

提供加载预处理器节点。

Bu2n的博客 5494

手写代码模块(Java实现)——笔试答题常用Model

手写代码模块(Java实现)——笔试答题常用Model 1.因式分解 Input:整数 Output:因数链表 public static ArrayList&lt;Integer&gt; Factorization(int n) { ArrayList&lt;Integer&gt; list = new ArrayList&lt;Integer&gt;(); ...

英勇的少年图 1245

M6 Mac mini涨价2500值不值?深度拆解硬件成本与购买决策

统一内存架构将CPU、GPU和内存封装在一起,通过共享高带宽内存池提升数据交换效率,尤其适合本地AI推理和视频渲染等场景。在苹果生态中,起步内存和存储的配置直接决定设备生命周期,因为后期无法自行升级。M6 Mac mini将起步内存从16GB提升至24GB、存储从256GB提升至512GB,同时芯片制程和GPU核心数均有升级,持续负载性能保持率明显改善。对于开发者、内容创作者和本地大模型推理用户,这些变化能转化为实际效率收益;而轻度办公用户则可能面临性能冗余。理解硬件成本结构与自身工作流需求,才能判断这25

weixin_30846347的博客 264

YOLOv8-seg模型后处理实战:从输出解析到mask生成的完整流程

本文详细解析了YOLOv8-seg实例分割模型的后处理完整流程,从理解output0与output1的双输出结构,到实现检测框的置信度过滤、坐标转换与NMS,再到核心的掩膜生成数学原理与矩阵乘法实现。文章深入探讨了如何将掩膜系数与原型掩膜库结合,生成像素级分割结果,并提供了掩膜上采样、边缘优化、性能提升及解决实际应用难题的实战方案。

xgboost6farmer的博客 316

Java 手写简单代码生成器

本片博客只讲述了实现过程和功能,具体源码在我的百度云盘上获取: 链接:https://pan.baidu.com/s/1Gree8UreYtcZjHelOh6FRw   提取密码:oheo  原理:导入模板,连接数据库获取数据库表的元数据,解析获取到的元数据,将解析到的所有表的数据遍历,使用FreeMarker将数据与模板合成,最终以输出流的形式生成文件。 〇、代码生成器的三要素 数据...

qq_42576040的博客 1291

保姆级教程:用LoRA微调Chinese-Mistral-7B模型,并一键部署到Ollama(附完整代码)

本文提供了一份详细的LoRA微调Chinese-Mistral-7B模型的保姆级教程,涵盖环境配置、数据预处理、微调实战、模型量化及Ollama部署全流程。通过实战案例和完整代码,帮助开发者快速构建专属中文大模型,适用于医疗、法律等垂直领域。

weixin_30369041的博客 249

java笔试手写算法面试题大全含答案

10.有一个已经排好序的整数数组,其中存在重复元素,请将重复元素删除掉,例如,A= [1, 1, 2, 2, 3],处理之后的数组应当为A= [1, 2, 3]。5.对于一个有N个整数元素的一维数组,找出它的子数组(数组中下标连续的元素组成的数组)之和的最大值。2) 数组:{ 0, -2, 3, 5, -1, 2 },结果是:9。3) 数组:{ -9, -2,-3, -5, -3 },结果是:-2。数组:{ 1, -2, 3,5, -3, 2 },结果是:8。2.输入年月日,计算该日期是这一年的第几天。

WeBot6的博客 715

深入浅出:大型语言模型(LLM)的全面解读

在当今的数字化时代,人工智能技术已经成为各行各业的核心驱动力之一。而在人工智能的领域中,大型语言模型(LLM)作为一种引人瞩目的技术,正在以其强大的语言理解和生成能力引领着一场革命。本文旨在深入浅出地解读大型语言模型,探讨其背后的原理、技术突破、应用场景以及未来发展趋势。

fudaihb的博客 10万+

TVBox源总失效?不如自己搭建一个!告别不稳定!手把手教你自建TVBox源,全网资源尽掌握!

🚀 TVBox源总失效?别慌!手把手教你自建TVBox源,打造一个稳定、海量、无广告的影视宝库!从此告别片荒,尽享丝滑观影体验!

XiaoqiangClub的博客 5439

1000行代码手写Web服务器(一)

1000行代码手写Web服务器(包括HTTP服务器和Servlet容器) 具备的功能(均为简化版的实现): HTTP Protocol 实现了HTTP协议 Servlet ServletContext Request 封装HTTP请求报文 Response 封装HTTP响应报文 DispatcherServlet Servlet转发 Static Resources &amp; File ...

songxinjianqwe的博客 8611

第二大脑的觉醒:一个寄生在代码里的小生命,如何悄无声息地接管我的工作流

所有记忆都存在本地。

步子哥的博客 1060

java程序员面试手写代码_程序员面试时手写代码的意义?

一.手写代码和上机测试我觉得,手写要写出思路,上机要能运行就够了写代码二.手写代码的意义和作用手写代码是一个很重要面试过程。在写的过程中,至少能看出这些问题1.取名字,随意的取名是维护的噩梦。2.是解决具体问题,还是能解决一类问题,别的同事如何使用你的代码。3.思路是否清晰,代码结构是否层次分明。提笔之前,想清楚自己要干什么。4.代码可读性,可维护性。5.边界问题,细节处理是否合理。直接关系到这个...

weixin_42360846的博客 1686

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

JAVA项目代码手写吗_一个老程序员是如何手写Spring MVC的

见人爱的Spring已然不仅仅只是一个框架了。如今,Spring已然成为了一个生态。但深入了解Spring的却寥寥无几。这里,我带大家一起来看看,我是如何手写Spring的。我将结合对Spring十多年的研究经验,用不到400行代码来描述SpringIOC、DI、MVC的精华设计思想,并保证基本功能完整。欢迎工作一到八年的Java工程师朋友们加入Java高级交流:854630135本群提供免费的学...

weixin_28683065的博客 248

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Java程序员面试没带笔记本电脑,直接手写代码 HR:现在可以入职吗?

生活在这个忙碌的社会,我们总是在忙碌中丢三落四。我们会从家出门忘带钥匙,我们会上班路上想起忘带工牌,到公司想起昨天晚上在家加班的资料没拿,甚至上班时起身去打杯水,途中看了下手机回来忘记拿水杯。 最尴尬是也许就在于,去面试吃饭的家伙没带了! 这是一个真实而感人的故事,程序员去公司面试,走到流程需要...

weixin_34391854的博客 2433

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

没有学历文凭,如何成为一名优秀的 Java 程序员

开始时,大部分时间贴代码,正常,很正常,因为总是觉得不够时间去从头写起,其实在项目做到后半段就觉得,一开始写自己的比现在修改起来好多了,但是在项目初期很难发觉的,因为项目经理会催,催的越急,就会越想找现成的东西解决。其实工作两三年后水平怎么样跟自己的追求、性格特点、目标是否清晰有很大的关系,当然大部分人可能会随波逐流,但还是会有人为了自己的目标而不断提升自己的水平,而对于Java程序员来说,真正的水平其实也不一定要看工作时长,有的人工作五六年可能也比不上不断吸收外界营养工作一两年的人强!

xuezhangmen的博客 511

Java程序员面试没带笔记本电脑,直接手写代码 HR:现在可以入职吗? ...

生活在这个忙碌的社会,我们总是在忙碌中丢三落四。我们会从家出门忘带钥匙,我们会上班路上想起忘带工牌,到公司想起昨天晚上在家加班的资料没拿,甚至上班时起身去打杯水,途中看了下手机回来忘记拿水杯。 最尴尬是也许就在于,去面试吃饭的家伙没带了! 这是一个真实而感人的故事,程序员去公司面试,走到流程需要...

weixin_33725272的博客 1874

失业Java程序员的奇葩求职记

失业不可怕,怕的是没有幽默感。作为Java程序员,别忘了带着幽默去面试,毕竟,修bug的路上总要笑一笑。如果你也在找工作,记得穿格子衫要低调,写代码要灵活,面试谈薪要淡定。愿所有找工作的Java程序员,都能笑着拿到offer!

weixin_38196672的博客 243

收藏!入职3个月不手写一行Java代码,靠大模型搞定5个核心需求(小白/程序员必看)

你先提供简要的需求描述,比如“给结算流程增加VIP折扣功能,参考现有Coupon优惠逻辑,VIP等级分为普通VIP、黄金VIP、钻石VIP,折扣分别为9.5折、9折、8.5折,折扣优先级高于优惠券”,然后让AI草拟详细的技术文档,文档需包含具体修改步骤、接口定义、数据流、约束条件。你必须仔细阅读并锁定这份文档后,再进入下一阶段——这份文档就是AI的“法律指令”,后续所有代码生成,都要严格按照这份文档执行。很多小白和程序员都会有一个疑问:AI能写代码、能做架构、能改Bug,未来会不会彻底取代程序员?

大模型教程的博客 341

历时四个月整理一百篇博客的收获(毕业快乐)

文章目录一、序言感想二、初写博客三、我的最爱四、手写代码五、收获认可 一、序言感想 时间回到2020.02.17那是疫情期间,距毕业还要134天,接触Java语言也有两百多天了。 整理优快云博客的初衷是喜欢思维导图X-mind,然后顺便记录一下自己的学习情况。 Java学到Spring Boot后,虽然已经校招找到了工作(ps:校招面试侧重点不一样吧相对简单一点),但是还是觉得自己好菜,因为觉得自己除了那些所谓的面试题背了一下,很多都不底层的原理。有点像为了工作而学习被面试题。 二、初写博客 我就想着

末尾卡片和博主交流学习! 3429

没学历,如何成为一名优秀的Java程序员

掌握Java的道路是漫长而艰难的。在我多年的程序员生涯中,我学到了一些要点。但是,“如何成为一名优秀的Java程序员”不是只字片语就能回答清楚的。无需任何正式的培训,也不需要坐在教室里学习、考文凭。没有相关的学位证书,你也可以被称为一名优秀的Java程序员。 你只需集中精力,读一两本好书,主动利用网上丰富的资源,投入足够的时间来学习这项技术。 然而,对于那些自学成才、试图在没有学位或任何正规培训的情况下快速成长的人来说,这也存在着陷阱。成为Java专业人员的过程是漫长的,但如果你避免了常见的错误,整个过程就

javase1086的博客 7072

没有学历文凭,如何成为一名优秀的 Java 程序员?

为编程语言界的常青藤 Java,无论是在企业级应用,还是后端开发中,均有着无可替代的地位。而对于 Java 的入门,很多新手们不可避免的会走一些弯道。那么,如何才能有效地避开这些误区?又该如何快速实践?在本文中,我们将一一为大家道来。你只需集中精力,主动利用网上丰富的资源,投入足够的时间来学习这项技术。然而,对于那些自学成才、试图在没有学位或任何正规培训的情况下快速成长的人来说,这也存在着陷阱。成为Java专业人员的过程是漫长的,但如果你避免了常见的错误,整个过程就会变得更加高效。初学者最常犯的错误初级开发

xuezhangmen的博客 1355

1024属于程序员的专属浪漫...

今天是 格子衫节,能看懂这个梗的话,说明你也是个程序员,怎么样,发际线还安全么?无论如何,我都忠心的希望大家身体健康,升职加薪... 好了,今天没啥分享,单纯借这个日子,整个活,分别用手写java字节码的方式和brainfuck的方式,打印Hello 1024, 大家乐呵乐呵... Java cafebabe00000034 0016 070002 01000a48656c6c6f576f726c64 070004 0100106a617661...

麒思妙想 3691

给准备跳槽的程序员Java面试秘籍!细节决定成败!

最近看到很多小伙伴都在因为面试烦恼,小编就将自己的一些面试建议分享出来,希望能帮助到大家。简历首先简历要写好,因为简历直接决定你是否能够获得一个面试机会。而且一份好的简历呢,也能给面试官留下一个非常好的第一印象。 那一份最优质的简历要注意哪些呢? 1.1个人信息 除了个人姓名、籍贯、现住地址等外,还需加上毕业学校、所学专业等重要的信息,无关的信息,例如身高、体重之类的,则少写或不写。 还需要注意的是你的电子邮箱,建议你用Gmail,不要用QQ邮箱,这样会显得你更专业一点。如果有个人主页、博客、GitHub

m0_67394360的博客 419

java排序方法代码,吊打面试官系列!

1.笔试常见的问题? 面试常见的问题上面给的面试题链接基本都有。我只提几点: 写SQL:写SQL很常考察group by、内连接和外连接。 手写代码:手写代码一般考单例、排序、线程、消费者生产者。我建议排序算法除了冒泡排序,最好还能手写一种其他的排序代码。试想:如果一般面试者都写的冒泡排序,而你写的是快速排序/堆排序,肯定能给面试官留下不错的印象。 2.面试流程? 让你自我介绍 问Java基础知识 问项目 情景问题,例如:你的一个功能上了生产环境后,服务器压力骤增,该怎么排查。 你有什么想问面试官的

m0_57983661的博客 110
下一篇: adb常用操作指令
To be lonely
博客等级 码龄8年 0粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值