SurfaceView 中,一行切割路径代码导致该行代码以下的绘制内容无效,请问该怎么办 5C

详细介绍一下,可能会略长
初学Android,写了个自定义控件,效果是这样的:

图片说明

绘制的大致流程是先将Canvas切割为圆形,然后再绘制波浪以及文字。

现在遇到的情况是:
1. 控件在ViewPager的第二页,控件显示正常。
2. 把控件放在一个单独的页面,控件的波浪不显示,但文字显示,如下图

图片说明

对于这个显示不正常的现象,我做了一些实验,最后发现和切割Canvas有关,我试了以下步骤:
1. 使用canvas.clipPath来切割,那么切割代码之后的绘制操作都不显示
2. 使用path.op 方法切割,op过的路径绘制操作(绘制波浪)不显示
3. 不切割,显示正常,如下图:

图片说明

实在不知道该从哪里入手解决了,想请教大家,如果你也遇到过这种情况,你是怎么解决的?或者你知道问题出在哪里,请告诉我!

1个回答

XiaoShou111
log4lgb 你发的这个我看过的,对我没有帮助,他那个帖子并没有对Path进行切割,而我的问题恰好是出在切割上
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android代码中多个surfaceview之间的切换以及传递数据

开发2D游戏时:在游戏进行中时,按下返回键,出现一个菜单,有三个按钮replay、resume、Mainmenu。这个菜单用另一个surfaceview完成,怎样切换,以及传递数据

android中surfaceview截图问题

最近用surfaceview显示一段视频 需要先用mediacode解码H.264数据 然后给surfaceview显示出来 现在我要进行播放过程中截图 发现用view和窗口 图像截图的办法截图出来是一张黑图 求大声们指导

SurfaceView在ScrollView中滑动背景问题

遇到一个很奇葩的问题,我把SurfaceView放在一个ScorllView当中, 结果滑动ScorllView的时候,SurfaceView的边缘会出现黑色

如何结束surfaceview跳转到另一个activity类中

我做的一个游戏,用的surfaceview画图,现在我想在游戏结束的时候结束surfaceview的画图然后跳转到另一个activity类里重新开始游戏

android surfaceview 和activity之间数据传递

想实现一个功能 就是在mainActivity中放置一个surfaceview和一个Textview 在surfaceview中添加点击onTouch事件 每次点击 让自己定义的surfaceview的变量 step加一 并时时在mainActivity的TextView中更新step的显示 不知道问题有没有描述清楚 就是想在一个view中时时显示另外一个view中定义的变量

如何将SurfaceView中的Canvas保存为Bitmap?

普通的Canvas可以通过下面的方法来将绘制内容保存为Bitmap ``` Bitmap bitmap = new Bitmap(width, height, Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); canvas.drawXXX ``` 但问题是,SurfaceView中Canvas是通过lockCanvas获取的,请问这种情况下,该如何将Canvas保存为Bitmap呢??

Android surfaceview精灵移动问题

我有一个疑问,csdn上到底有没有大神呢?surfaceview中有一个精灵我要实现触摸一下他就移动到触摸点,不是瞬移哦,是有一个过程,该怎么实现呢,求大神帮忙,谢谢

Android中surfaceView画直线断断续续

使用surfaceView做了一个画画板的练习,可是画出来的线断断续续,是为什么? 下面是mainactivity package com.wxh.mywall; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import android.os.Bundle; import android.view.Menu; import android.view.MotionEvent; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { private SurfaceView mSurfaceView = null; private SurfaceHolder mSurfaceHolder = null; private Button cleanButton = null; private Button colorButton = null; private float oldX = 0f; private float oldY = 0f; private boolean canDraw = false; private Paint mPaint = null; //用来记录当前是哪一种颜色 private int whichColor = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mSurfaceView = (SurfaceView)this.findViewById(R.id.surfaceview); mSurfaceHolder = mSurfaceView.getHolder(); mPaint = new Paint(); //画笔的颜色 mPaint.setColor(Color.RED); //画笔的粗细 mPaint.setStrokeWidth(2.0f); cleanButton = (Button)this.findViewById(R.id.flushbutton); //按钮监听 cleanButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //锁定整个SurfaceView Canvas mCanvas = mSurfaceHolder.lockCanvas(); mCanvas.drawColor(Color.BLACK); //绘制完成,提交修改 mSurfaceHolder.unlockCanvasAndPost(mCanvas); //重新锁一次 mSurfaceHolder.lockCanvas(new Rect(0, 0, 0, 0)); mSurfaceHolder.unlockCanvasAndPost(mCanvas); } }); colorButton = (Button)this.findViewById(R.id.colorbutton); //按钮监听 colorButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Dialog mDialog = new AlertDialog.Builder(MainActivity.this) .setTitle("颜色设置") .setSingleChoiceItems(new String[]{"红色","绿色","蓝色"}, whichColor, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub switch(which) { case 0: { //画笔的颜色 mPaint.setColor(Color.RED); whichColor = 0; break; } case 1: { //画笔的颜色 mPaint.setColor(Color.GREEN); whichColor = 1; break; } case 2: { //画笔的颜色106 mPaint.setColor(Color.BLUE); whichColor = 2; break; } } } }) .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub dialog.dismiss(); } }) .create(); mDialog.show(); } }); } @Override public boolean onTouchEvent(MotionEvent event) { //获取x坐标 float x = event.getX(); //获取y坐标(不知道为什么要减去两个偏移值才对得准屏幕) float y = event.getY()-100; //第一次进来先不管 if(canDraw) { //获取触屏事件 switch(event.getAction()) { //如果是拖动事件 case MotionEvent.ACTION_MOVE: { //锁定整个SurfaceView Canvas mCanvas = mSurfaceHolder.lockCanvas(); mCanvas.drawLine(x, y, oldX, oldY, mPaint); mSurfaceHolder.unlockCanvasAndPost(mCanvas); //重新锁一次 mSurfaceHolder.lockCanvas(new Rect(0, 0, 0, 0)); mSurfaceHolder.unlockCanvasAndPost(mCanvas); break; } } } //保存目前的x坐标值 oldX = x; //保存目前的y坐标值 oldY = y; canDraw = true; return true; } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } } ``` ```

在android中用surfaceview播放视频时,实现未播放的预览效果?

在android中用surfaceview播放视频时,如何在surfaceview的出现时就加载视频的第一帧,实现未播放的预览效果? 类似于图的那种效果,谁有什么解决方法吗?

点击surfaceview切换activity问题

在学习安卓2d游戏制作,loading界面、主世界、其他功能窗口我都打算弄成activity1、activity2、activity3…这样好不好,如果能行,那么比如背包按钮是一个surfaceview,我要点击一下打开背包activity,在ontouch里,怎么访问背包的activity?不是很懂Java的包结构,我的view类和activity类应该怎么摆放才能相互访问,还有以前没用过动态语言,习惯了自己new的自己释放,我看网上Java代码好多在同一个地方new class,比如我看网上代码在surfaceview的oncreate里new了一个游戏对象,照理说用户按了home键,再切回游戏,还会触发一次这个oncreate,那么不就new了两个了吗?而且在windows开发语言里,这两个new出来的东西会占用不同的内存空间,假如这是一个npc的canvas,在windows语言里就出现两个npc了,这是我看的代码有问题还是Java本来就这样?是不是应该在类的构造函数里就把他new好,因为看的视频教程他执行起来又没问题

安卓3个Surfaceview 画图问题

用canvas.drawLine(oldX1, (float) oldY1, x, y, paint);同时方法对三个suffaceview画图 ![图片说明](https://img-ask.csdn.net/upload/201812/02/1543755359_929972.png) 却出现了这个情况 什么情况 数据都差不多 oldx1:736.0 oldy1 270.25 x 751 y 270.0138 sampleDraw: oldx1:751.0 oldy1 270.0138 x 752 y 160.33496 sampleDraw: oldx1:752.0 oldy1 160.33496 x 753 y 199.13245 sampleDraw: oldx1:753.0 oldy1 199.13245 x 754 y 270.1825 sampleDraw: oldx1:754.0 oldy1 270.1825 x 755 y 160.50623 sampleDraw: oldx1:755.0 oldy1 160.50623 x 756 y 198.24878 sampleDraw: oldx1:756.0 oldy1 198.24878 x 757 y 270.6488 12-02 20:50:52.890 10336-10336/com.example.chenlei.ecg355 E/ICUActivity: 解1 12-02 20:50:52.896 10336-10336/com.example.chenlei.ecg355 E/ECGInfo: sampleDraw: oldx2:763.0 oldy2 400.25 x 778 y 400.0138 sampleDraw: oldx2:778.0 oldy2 400.0138 x 779 y 290.33496 sampleDraw: oldx2:779.0 oldy2 290.33496 x 780 y 329.13245 sampleDraw: oldx2:780.0 oldy2 329.13245 x 781 y 400.1825 sampleDraw: oldx2:781.0 oldy2 400.1825 x 782 y 290.50623 sampleDraw: oldx2:782.0 oldy2 290.50623 x 783 y 328.24878 sampleDraw: oldx2:783.0 oldy2 328.24878 x 784 y 400.6488 12-02 20:50:52.897 10336-10336/com.example.chenlei.ecg355 E/ECGInfo: sampleDraw: oldx3:720.0 oldy3 400.0088 x 735 y 400.38 12-02 20:50:52.898 10336-10336/com.example.chenlei.ecg355 E/ECGInfo: sampleDraw: oldx3:735.0 oldy3 400.38 x 736 y 290.39 sampleDraw: oldx3:736.0 oldy3 290.39 x 737 y 329.1112 sampleDraw: oldx3:737.0 oldy3 329.1112 x 738 y 400.2788 sampleDraw: oldx3:738.0 oldy3 400.2788 x 739 y 290.69495 sampleDraw: oldx3:739.0 oldy3 290.69495 x 740 y 327.75745 sampleDraw: oldx3:740.0 oldy3 327.75745 x 741 y 400.5863 最后显示![图片说明](https://img-ask.csdn.net/upload/201812/02/1543755482_911051.png) 请问怎么让三个都画

SurfaceView初始化顺序的问题

创建自定义的LoadingView继承SurfaceView(实现了CallBack)。需要用到屏幕宽高,将屏幕的宽高常量WIDTH,HEIGHT定义在常量类Constans中(未赋值)。然后在CallBack的surfaceCreate方法中对宽高进行了赋值。并在LoadingView的构造方法中创建了用于绘制图形的任务线程类的对象,在surfaceCreate中开启线程start。结果发现运行时线程类中的WIDTH常量并未被成功赋值,仍然为0。 调用顺序是先在surfaceCreate中赋值了后开启线程的呀。

Android中GLSurfaceView和SurfaceView重叠显示?

将GLSurfaceView和SurfaceView放在一个FrameLayout中,GLSurfaceView在 SurfaceView之上,都设置了setZOrderOnTop(true);在第一次显示时 GLSurfaceView显示在SurfaceView之上,但按home键后,再点击该程序, SurfaceView就一直显示在GLSurfaceView之上了。 请问下是什么原因?

surfaceView的透明问题

**问题描述:** 一个Activity布局文件,最外层是RelativeLayout,包含以下三个layout,依次摆放,第一层是RelativeLayout1,第二层是surfaceView,第三层是RelativeLayout2,互相重叠.。该Actitity被设置成了透明,surfaceView也被设置成了透明,最上面一层RelativeLayout2也是透明的,可是在surface下面一层的RelativeLayout1却看不到,看到的是手机桌面,请问为什么,有什么解决方法吗? ![图片说明](https://img-ask.csdn.net/upload/201501/15/1421317172_635864.png)

Android surfaceView播放视频 如何计算视频的帧率

求助大佬 Android surfaceView播放视频 如何计算视频的帧率 ``` SurfaceHolder surfaceHolder = surfaceView.getHolder(); surfaceHolder.addCallback(new SurfaceHolder.Callback() { @Override public void surfaceCreated(SurfaceHolder holder) { NativeSetSurface(mStreamId, holder.getSurface()); //播放视频 } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } @Override public void surfaceDestroyed(SurfaceHolder holder) { holder = null; surfaceView.destroyDrawingCache(); NativeSetSurface(mStreamId,null); } }); ```

视频通话两个surfaceview之间互相切换

最近在在公司做视频通话的时候。界面有两个surfaceView,对方的全屏显示,在RelativeLayout中,我的视频在RelativeLayout右下角。提出一个功能,点击小的surfaceView,内容会切换。 目前自己尝试: 1.直接切换内容,只切换了Callback,没成功 2.在布局中,用代码写出来,点击小的,会让属性、位置发生变化,但出现一个问题,层级关系,下面的怎么都挪不上来。 大神能不能给个demo,我给你冲10个qq币感谢一下。企鹅332197858 真心感谢啊

surfaceview与activity的数据传递

我在surfaceview中有个int数据,我想把它传递到另一个activity类中,应该怎么做,求大神指教

一个关于android surfaceView的问题,求大神回答

surfaceView据说双缓存,两画布换来换去,但是我post后画布有时候还有有时候就没了 surfaceCreated方法里,最后的 canvas=sfh.lockCanvas(); sfh.unlockCanvasAndPost(canvas); 多加几个少加几个出现不同的情况,这个是怎么回事,大神求帮忙TT 下面是代码 clock.java ``` package com.app.jtj.clock; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import android.text.format.Time; import android.util.Log; import android.view.SurfaceHolder; import android.view.SurfaceView; /** * Created by Administrator on 2015/11/18. */ public class Clock extends SurfaceView implements SurfaceHolder.Callback,Runnable{ private int w,h=0; private int mCP=0; private int xxxR=0; private int xxR=0; private int xR=0; private int R=0; private int mR=0; private float du=0; private Time t=new Time(); private Time tP=new Time(); private SurfaceHolder sfh; private Paint paint; private Canvas canvas; private boolean flag=true; private Thread th; public Clock(Context context) { super(context); sfh = this.getHolder(); sfh.addCallback(this); } private void init() { mCP= (int) (w * 0.5); xxxR = (int) ( w * 0.93 * 0.5); xxR = (int) ( w * 0.90 * 0.5); xR = (int) ( w * 0.85 * 0.5); R = (int) ( w * 0.80 * 0.5); mR = (int) ( w * 0.75 * 0.5); } private void initView() { //canvas.drawColor(Color.WHITE); //画圆 paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth(5); paint.setARGB(255, 150, 150, 150); canvas.drawCircle(mCP, mCP, xR, paint); paint.setStrokeWidth(1); paint.setARGB(255, 150, 150, 150); canvas.drawCircle(mCP, mCP, R, paint); //刻度 paint.setStrokeWidth(10); for (int i=0;i<12;i++){ canvas.drawLine(mCP,mCP-xR,mCP,mCP-xxR,paint); canvas.rotate(30,mCP,mCP); } paint.setStrokeWidth(10); paint.setARGB(255, 20, 20, 20); for (int i=0;i<4;i++){ canvas.drawLine(mCP,mCP-xR,mCP,mCP-xxxR,paint); canvas.rotate(90,mCP,mCP); } //日期时间 tP.setToNow(); t.setToNow(); paint.setStyle(Paint.Style.FILL_AND_STROKE); paint.setTextSize((float) (w * 0.05)); paint.setStrokeWidth(1); int month=tP.month+1; String str1=tP.year + "."+month+"."+tP.monthDay; float numb1=paint.measureText(str1); canvas.drawText(str1, mCP-numb1/2, (float) (w*0.30), paint); str1=getWeek(tP); numb1=paint.measureText(str1); canvas.drawText(str1, mCP-numb1/2, (float) (w*0.70), paint); } private String getWeek(Time t) { String str2=""; switch (t.weekDay){ case 0:str2="星期日";break; case 1:str2="星期一";break; case 2:str2="星期二";break; case 3:str2="星期三";break; case 4:str2="星期四";break; case 5:str2="星期五";break; case 6:str2="星期六";break; } return str2; } @Override public void run() { } @Override public void surfaceCreated(SurfaceHolder holder) { w=this.getWidth(); h = this.getHeight(); flag=true; paint =new Paint(); paint.setColor(Color.WHITE); paint.setAntiAlias(true); for (int i=0;i<2;){ canvas=sfh.lockCanvas(new Rect(0,0,w,h)); if (canvas!=null){ i++; canvas.drawColor(Color.WHITE); sfh.unlockCanvasAndPost(canvas); } } for (int i=0;i<2;) { canvas = sfh.lockCanvas(); if (canvas!=null) { init(); Log.i("ttt", "1"); initView(); i++; sfh.unlockCanvasAndPost(canvas); } } canvas=sfh.lockCanvas(); sfh.unlockCanvasAndPost(canvas); canvas=sfh.lockCanvas(); sfh.unlockCanvasAndPost(canvas); canvas=sfh.lockCanvas(); sfh.unlockCanvasAndPost(canvas); canvas=sfh.lockCanvas(); sfh.unlockCanvasAndPost(canvas); //th = new Thread(this); //th.start(); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } @Override public void surfaceDestroyed(SurfaceHolder holder){ flag=false; } } ``` activity里就加了 requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(new Clock(this));

如何在切换Fragment时不销毁SurfaceView

如题,我创建了两个Fragment,其中一个加载了SurfaceView,然而每次切换Fragment的时候,log都会提示SurfaceView的surfaceDestroyed被调用了,再切回来的时候提示surfaceCreated被调用,结果就是切换回含有SurfaceView的Fragment的时候就黑一下屏。我觉得跟SurfaceView在切换时被销毁重建有关,那么该如何解决呢?

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

springboot+jwt实现token登陆权限认证

一 前言 此篇文章的内容也是学习不久,终于到周末有时间码一篇文章分享知识追寻者的粉丝们,学完本篇文章,读者将对token类的登陆认证流程有个全面的了解,可以动态搭建自己的登陆认证过程;对小项目而已是个轻量级的认证机制,符合开发需求;更多精彩原创内容关注公主号知识追寻者,读者的肯定,就是对作者的创作的最大支持; 二 jwt实现登陆认证流程 用户使用账号和面发出post请求 服务器接受到请求后使用私...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

程序员写出这样的代码,能不挨骂吗?

当你换槽填坑时,面对一个新的环境。能够快速熟练,上手实现业务需求是关键。但是,哪些因素会影响你快速上手呢?是原有代码写的不够好?还是注释写的不够好?昨夜...

外包程序员的幸福生活

今天给你们讲述一个外包程序员的幸福生活。男主是Z哥,不是在外包公司上班的那种,是一名自由职业者,接外包项目自己干。接下来讲的都是真人真事。 先给大家介绍一下男主,Z哥,老程序员,是我十多年前的老同事,技术大牛,当过CTO,也创过业。因为我俩都爱好喝酒、踢球,再加上住的距离不算远,所以一直也断断续续的联系着,我对Z哥的状况也有大概了解。 Z哥几年前创业失败,后来他开始干起了外包,利用自己的技术能...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

早上躺尸,晚上干活:硅谷科技公司这么流行迟到?

硅谷科技公司上班时间OPEN早已不是什么新鲜事,早九晚五是常态,但有很多企业由于不打卡,员工们10点、11点才“姗姗来迟”的情况也屡见不鲜。 这种灵活的考勤制度为人羡慕,甚至近年来,国内某些互联网企业也纷纷效仿。不过,硅谷普遍弹性的上班制度是怎么由来的呢?这种“流行性迟到”真的有那么轻松、悠哉吗? 《动态规划专题班》 课程试听内容: 动态规划的解题要领 动态规划三大类 求最值/计数/可行性 常...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

Python爬虫,高清美图我全都要(彼岸桌面壁纸)

爬取彼岸桌面网站较为简单,用到了requests、lxml、Beautiful Soup4

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

Java岗开发3年,公司临时抽查算法,离职后这几题我记一辈子

前几天我们公司做了一件蠢事,非常非常愚蠢的事情。我原以为从学校出来之后,除了找工作有测试外,不会有任何与考试有关的事儿。 但是,天有不测风云,公司技术总监、人事总监两位大佬突然降临到我们事业线,叫上我老大,给我们组织了一场别开生面的“考试”。 那是一个风和日丽的下午,我翘着二郎腿,左手端着一杯卡布奇诺,右手抓着我的罗技鼠标,滚动着轮轴,穿梭在头条热点之间。 “淡黄的长裙~蓬松的头发...

大胆预测下未来5年的Web开发

在2019年的ReactiveConf 上,《Elm in Action》的作者Richard Feldman对未来5年Web开发的发展做了预测,很有意思,分享给大家。如果你有机会从头...

立即提问
相关内容推荐