用java编程小明地铁_程序员在地铁上写代码被路人吐槽:有什么好装的!网友评论炸锅了!...

2024-03-23 13:20

本文主要是介绍用java编程小明地铁_程序员在地铁上写代码被路人吐槽:有什么好装的!网友评论炸锅了!...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

现在的人自我意识越来越强,专注做自己的事不太会在意别人的眼光,不管别人如何评价路,毕竟脚下的路是自己在走。

最近有位网友在职场论坛上发帖,说看见地铁上有一程序员大哥在写代码,并且配上了一张照片。

7b0908104d8c11c835c3e5328d2af751.png

从照片中可以看出,一位男子坐在靠地铁栏杆的地方,把包放在腿上,垫着电脑,噼噼啪啪的在工作,地铁上人不多,显然不是高峰期,他工作的状态很专注。

没想到程序员的这个举动却被路人吐槽说:“有什么好装的”,地铁里手机信号都不好,如果遇到紧急的bug,早就下车找地方去修改了,还用在地铁里干。

23c4734a5286af8c8bfe9027d8254591.png

但这个网友的帖子立刻引来其他网友的回怼,说写代码根本不用网络而且地铁的网络现在也很好,就是因为他觉得写代码是一个很高大上的事情,所以才会觉得程序员在装。

其实在程序员看来这就是他的工作,是因为工作太多,进度太赶,实在忙不过来,或者因为在下班的路上,突然有了灵感才在地铁里干活。

2a6bbf4b40feceb955008d6183739c17.png

也有网友说,不管他是不是装,他都是在工努力工作,对于这种抓紧分分秒秒都在拼搏的年轻人,我们应该对他心生敬意,而不是冷嘲热讽。

如果一个人在地铁里背英文单词,是不是也会被人讽刺装呢,但是有很多人就是这样不断充实自己,才让自己变得更优秀。

153d5bc6a8169d58fb50f375d10fe132.png

也有人说他不是在装,没有从事过这个行业的人不了解,真的是太忙了,地铁里不干,可能回家就要多干一小时,利用地铁的时间多干一点,那么回家就可以多休息一会。

cc09a38a20ab72062c056271038a183d.png

分享读者

作为一名Android开发,与其整天996,拼命加班,不妨正视自己的缺点和不足,构建一个属于自己的知识体系,提升工作效率。

同时也能够让我们学到的知识体系化.让自己清楚哪块是自己的知识盲区,哪块已经构建起根基.然后根据实际情况,有针对性的进行模块学习.让自己成为一个合格的Android工程师.

我们平时看博客或者学知识,学到的东西比较零散,没有独立的知识模块概念,而且学了之后很容易忘.于是我建立了一个自己的笔记仓库 (一个我长期维护的笔记仓库,感兴趣的可以点个star~你的star是我写作的巨大大大大的动力),将平时学到的东西都归类然后放里面,需要的时候呢也方便复习.过了段时间,我觉得这样还是不够好,于是我最近花了点时间,整理了一下Android中的常见知识,画了一张思维导图.更清晰地认识自己的知识边界到底在哪里,哪些东西还不足.

此知识体系呢只是一个参考,大家可以根据自己的实际情况进行针对性学习,然后进行查漏补缺,提升自己~

1. 计算机基础

1.1 计算机网络

1.1.1 计算机网络概述

网络七层协议

TCP/IP四层模型

底层协议

底层设备

1.1.2 应用层

HTTP协议(⭐⭐⭐)

DHCP协议(⭐⭐⭐)

NAT

1.1.3 传输层(⭐⭐⭐)

TCP协议

UDP协议

1.1.4 网络层

IP协议

ICMP协议

1.2 操作系统(⭐⭐⭐)

1.2.1 操作系统基本功能

进程管理

作业管理/文件管理

存储管理/设备管理

1.2.2 Linux系统

内存管理

进程管理

文件系统

常见命令操作

1.2.3 补充

自旋锁/互斥锁/读写锁/条件变量/共享文件

消息队列/管道/信号量

操作系统的用户态与内核态

上下文切换成本

进程,线程与协程

2. Java基础(⭐⭐⭐)

847472390861072f345239d68a948cb8.png

2.1 集合原理

ArrayList

Vector

Stack

LinkedList

HashMap

Hashtable

TreeMap

LinkedHashMap

HashSet

TreeSet

CopyOnWriteArrayList

ConcurrentHashMap

LinkedBlockingQueue

SynchronousQueue

SparseArray

ArrayMap

2.2 其他

面向对象

设计模式

反射

泛型

注解

3. Java并发

3.1 线程基础

实现多线程

启动线程

停止线程

线程的6种状态

各种各样的锁

悲观锁和乐观锁

共享锁和独占锁

公平锁和非公平锁

可重入锁和非可重入锁

可中断锁和非可中断锁

自旋锁和非自旋锁

偏斜锁/轻量级锁/重量级锁

JVM对synchronized锁的优化

wait/notify/sleep/join等重要方法

守护线程,优先级等属性

线程安全

Future获取运行结果

Fork/Join模式

CountDownLatch

CyclicBarrier

Semaphore

Condition

Phaser

重排序

原子性

内存可见性

CAS原理

AQS框架

3.2 其他

3.2.1 并发容器

Vector/Hashtable

ConcurrentHashMap

CopyOnWriteArrayList

阻塞队列

非阻塞队列

ConcurrentSkipListMap

3.2.2 atomic包,6种原子类

分类

原子类与锁

原子类与volatile

3.2.3 ThreadLocal

使用场景

原理

3.3.4 线程池

优点

参数

分类

执行任务流程

拒绝策略

正确关闭线程池

线程池复用原理

4. JVM虚拟机

内存区域

内存模型

内存分配回收策略

Java对象的创建、内存布局和访问定位

GC: 引用计数及可达性分析,垃圾回收算法,G1及ZGC

类加载机制

双亲委派模型

编译器优化: 方法内联,逃逸分析

虚拟机相关: HotSpot及JIT,Dalvik,ART及AOT

JVM执行方法

JVM实现反射

JVM实现泛型

JVM实现异常

JVM实现注解

5. 数据结构与算法

5.1 数据结构

队列

数组

链表

Hash表

二叉树

基础排序算法

字符串操作

5.2 算法

分治算法

动态规划

贪心算法

分支限界法

5.3 刷题

CS-Notes剑指Offer题解

CS-NotesLeetCode题解

1307页字节跳动Android高频面试题集

6. Android基础

6ea84dfcd160e85e0b8308b5fa7a1d09.png

6.1 核心知识点

6.1.1 四大组件

Activity

Service

BroadcastReceiver

ContentProvider

6.1.2 布局和控件

RelativeLayout

FrameLayout

LinearLayout

ConstraintLayout

Button

TextView

RecyclerView

6.1.3 自定义View/ViewGroup

onMeasure

onLayout

onDraw

onTouchEvent

dispatchTouchEvent

自定义属性

6.1.4 动画和手势

View动画

属性动画

layoutAnimation视图动画

手势检测(GestureDetector)

缩放手势检测(ScaleGestureDecetor)

6.1.5 网络

请求网络

解析数据

6.1.6 图片加载

本地图片

网络图片

压缩图片

多图列表

DiskLruCache

6.1.7 Handler

Looper

Message

MessageQueue

内存泄漏

ThreadLocal

6.1.8 Android各版本新特性

Android5.0

Android6.0

Android7.0

Android8.0(O)

Android9.0§

Android10.0(Q)

Android11.0®

6.1.9 其他

adb常用命令

文件和数据库

异步线程池

Resources

6.2 开源库使用

Retrofit/OKhttp

RxJava

Glide

注解框架

Jetpack

6.3 性能优化

6.3.1 快-流畅的体验

布局优化

绘制优化

内存优化

启动优化

其他

6.3.2 稳-稳定

避免内存泄露

避免崩溃

6.3.3 省-省电/流量

使用JobScheduler调度任务

使用懒惰法则

6.3.4 小-安装包小

apk构成

包体优化

7. Android进阶

7.1 核心知识点

7.1.1 多进程

Binder

AIDL

Messenger

7.1.2 Activity难点

onSaveInstanceState()和onRestoreInstanceState()

intent-filter匹配规则

生命周期

启动模式

Activity启动过程

App启动过程

7.1.3 Service难点

startService流程

bindService流程

7.1.4 BroadcastReceiver难点

注册/发送/接收工作原理

7.1.5 ContentProvider难点

ContentProvider启动过程

7.1.6

View绘制

事件分发

消息队列

AsyncTask原理

RemoteViews

Window和ViewRootImpl

7.2 开源库原理

OkHttp

Retrofit

RxJava

Glide

LeakCanary

GreenDao

ARouter

7.3 Gradle

编译

混淆

签名

Groovy

Gradle构建流程

GradlePlugin

Gradle构建优化

App构建过程

差异化打包

7.4 初级架构

设计模式

MVC,MVP,MVVM

7.5 JNI

JNI基础

NDK基础

7.6 动态化

7.6.1 前置知识

Android打包流程

Java字节码

GradlePlugin

TransformAPI

ASM

7.6.2 热修复:nuwa&Tinker

经典-64k问题

dex分包

MultiDex优化

findClass原理

QQ空间热补丁方案

Nuwa应用层实现

NuwaGradle

7.6.3 插件化:VirtualAPK

加载类

资源访问

生命周期管理

7.7 编译插桩

AOP

ASM

7.8 Framework

7.8.1 系统服务

Zygote启动

Android系统启动

ServiceManager启动及工作原理

7.8.2 应用进程

启动流程

启用Binder机制

Application初始化流程

Context

7.8.3 UI体系

显示原理

UI线程启动

屏幕刷新机制

surface

vsync

7.8.4 进程通信

Binder

IPC通信流程

Binder对象跨进程传递

OneWay机制

7.8.5 线程通信

消息队列

消息传递机制

Handler消息延迟实现

IdleHandler原理

消息屏障

ThreadLocal原理

7.8.6 其他

跨进程传递大图片

四大组件启动原理

8. 领域专家

8.1 性能优化方向

稳定性优化

启动速度优化

绘制优化

内存优化

包体积优化

网络优化

IO优化

存储优化

耗电优化

8.2 基础架构方向

Android工程实践

Gradle自动化构建

编译插桩技术

Android架构

Android热修复

Android插件化

Android核心源码

8.3 NDK、音视频

C

C++

JNI基础

编译原理与语法基础

Linux基础

热修复

Gif图实现

音视频基础

ffmpeg

WebRTC

opengl

vulkan

opencv

8.4 大前端

8.4.1 前端基础

HTML

CSS

JavaScript

8.4.2 Flutter(⭐⭐)

Dart入门

Flutter入门

开发

工程管理

线上运维

发布

测试调试

8.4.3 其他

ReactNative

小程序

性能优化

9. 其他Android相关

9.1 Koltin(⭐⭐)

9.1.1 基础部分

内置类型

类型初步

表达算式

函数进阶

类型进阶

9.1.2 高级部分

泛型

反射

注解

协程

本文在开源项目:https://github.com/Android-Alvin/Android-LearningNotes 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

这篇关于用java编程小明地铁_程序员在地铁上写代码被路人吐槽:有什么好装的!网友评论炸锅了!...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/838433

相关文章

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定

Python如何去除图片干扰代码示例

《Python如何去除图片干扰代码示例》图片降噪是一个广泛应用于图像处理的技术,可以提高图像质量和相关应用的效果,:本文主要介绍Python如何去除图片干扰的相关资料,文中通过代码介绍的非常详细,... 目录一、噪声去除1. 高斯噪声(像素值正态分布扰动)2. 椒盐噪声(随机黑白像素点)3. 复杂噪声(如伪

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置

Java Spring ApplicationEvent 代码示例解析

《JavaSpringApplicationEvent代码示例解析》本文解析了Spring事件机制,涵盖核心概念(发布-订阅/观察者模式)、代码实现(事件定义、发布、监听)及高级应用(异步处理、... 目录一、Spring 事件机制核心概念1. 事件驱动架构模型2. 核心组件二、代码示例解析1. 事件定义

SpringMVC高效获取JavaBean对象指南

《SpringMVC高效获取JavaBean对象指南》SpringMVC通过数据绑定自动将请求参数映射到JavaBean,支持表单、URL及JSON数据,需用@ModelAttribute、@Requ... 目录Spring MVC 获取 JavaBean 对象指南核心机制:数据绑定实现步骤1. 定义 Ja

javax.net.ssl.SSLHandshakeException:异常原因及解决方案

《javax.net.ssl.SSLHandshakeException:异常原因及解决方案》javax.net.ssl.SSLHandshakeException是一个SSL握手异常,通常在建立SS... 目录报错原因在程序中绕过服务器的安全验证注意点最后多说一句报错原因一般出现这种问题是因为目标服务器

Java实现删除文件中的指定内容

《Java实现删除文件中的指定内容》在日常开发中,经常需要对文本文件进行批量处理,其中,删除文件中指定内容是最常见的需求之一,下面我们就来看看如何使用java实现删除文件中的指定内容吧... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细介绍3.1 Ja

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再

spring中的ImportSelector接口示例详解

《spring中的ImportSelector接口示例详解》Spring的ImportSelector接口用于动态选择配置类,实现条件化和模块化配置,关键方法selectImports根据注解信息返回... 目录一、核心作用二、关键方法三、扩展功能四、使用示例五、工作原理六、应用场景七、自定义实现Impor