首页 文章 精选 留言 我的

精选列表

搜索[网站开发],共10000篇文章
优秀的个人博客,低调大师

年薪40万Java开发在阿里巴巴是什么水平?需要熟悉哪些技术?

好多人对阿里巴巴的薪资体系结构及级别设置不太清楚,想去面试也不知道面试什么级别的岗位,那么,年薪 40 万在阿里内部又是什么水平呢? 先来看看阿里巴巴的级别设置: 再来看看阿里巴巴的对应薪资年薪: 40W 年薪 P6 级别就能拿到,阿里巴巴薪资结构一般是 16 薪,所以就是税前2.5w,年底的奖金 0-6 个月薪资,90%人可拿到 3 个月,关于股票,这得要工作满 2 年才能拿,第一次拿50%,4年能全部拿完。 在阿里达到P6的要求是什么呢,阿里内部有个简单的概述,那就是可以独立完成部门内部的项目,而面试过程中,也会有相应的考察。 1.你的代码能力 2.对常用中间件的理解 3.架构、业务落地能力 4.沟通协作能力 总的来说呢,到这个阶段,代码真的只是你技能桶中的一个最长的,或者最长的之一,而其他软技能,会显得越来越重要。 年薪40w真的不算啥,具体几年可以达到,因人而异,不过大多数身边的人很多3-5年是这个水平。 希望大家提前准备好再去阿里面试,不要浪费机会。 下面再送一波架构师视频教程,免费发放,大家好好看一下,而且还会不定期更新,转发+关注,然后私信回复我“777“就可以免费获取喔~ 欢迎工作一到五年的Java工程师朋友们加入Java填坑之路:860113481 群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

优秀的个人博客,低调大师

使用Per.js快速开发商品价格计算页面 - for Per.js3.0

先预览一下全部代码: <!DOCTYPE html> <html> <head> <title>Per.js Demo</title> <meta charset="UTF-8"> </head> <body id="body"> <div id="page1"> <h1>Welcome to use this price calculation!</h1> </div> <div id="page2" style="display: none;"> <ul p-loop-in="var1"> <li>This is {{var1.name}}</li> <li>The price is: {{var1.price}}<span p-con="{{var1.price > 20}}"> - To expensive!</span></li> </ul> </div> <button id="tp1">to page1</button> <button id="tp2">to page2</button> <button id="btn-refre">Refresh</button> <script src="Per.js"></script> <script> Per.use("Per.page"); Per.page.create.pageGroup("allPage"); Per.page.create.page("allPage","#page1"); Per.page.create.page("allPage","#page2"); var app = Per("ul"); app.dom({ loop: [{name: "apple",price: 20},{name: "bread",price: 30},{name: "banana",price: 25}], callback: function(){ Per("span").dom({ con: "in" }); } },true,true); Per("#btn-refre").dom({ info: { item: [{name: "apple",price: 20},{name: "bread",price: 30},{name: "banana",price: 25}] }, click: function(){ this._super.innerHTML = "Refresh now!"; var val = parseInt(Math.random()*30+1); this.item[0].price = val; val = parseInt(Math.random()*30+1); this.item[1].price = val; val = parseInt(Math.random()*30+1); this.item[2].price = val; app.dom.loop = this.item; } }); Per("#tp1").dom({ click: function(){ Per.page.to("allPage",1); } }); Per("#tp2").dom({ click: function(){ Per.page.to("allPage",2); } }); </script> </body> </html> 然后发上一波效果图: 没错,就是这样一个页面,那么接下来我就来教大家如何制作。 先把基本页面格式写好。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Per.js Demo</title> </head> <body> </body> </html> 之后我们使用script标签来引入Per.js文件: <script src="Per.js"></script> <script> </script> 再然后,我们在body标签里面写上基本结构: <div id="page1"> <h1>Welcome to use this price calculation!</h1> </div> <div id="page2" style="display: none;"> <ul p-loop-in="var1"> <li>This is {{var1.name}}</li> <li>The price is: {{var1.price}}<span p-con="{{var1.price > 20}}"> - To expensive!</span></li> </ul> </div> <button id="tp1">to page1</button> <button id="tp2">to page2</button> <button id="btn-refre">Refresh</button> 之后在script标签里面再写js语句: Per.use("Per.page"); Per.page.create.pageGroup("allPage"); Per.page.create.page("allPage","#page1"); Per.page.create.page("allPage","#page2"); var app = Per("ul"); app.dom({ loop: [{name: "apple",price: 20},{name: "bread",price: 30},{name: "banana",price: 25}], callback: function(){ Per("span").dom({ con: "in" }); } },true,true); Per("#btn-refre").dom({ info: { item: [{name: "apple",price: 20},{name: "bread",price: 30},{name: "banana",price: 25}] }, click: function(){ this._super.innerHTML = "Refresh now!"; var val = parseInt(Math.random()*30+1); this.item[0].price = val; val = parseInt(Math.random()*30+1); this.item[1].price = val; val = parseInt(Math.random()*30+1); this.item[2].price = val; app.dom.loop = this.item; } }); Per("#tp1").dom({ click: function(){ Per.page.to("allPage",1); } }); Per("#tp2").dom({ click: function(){ Per.page.to("allPage",2); } }); 之后打开浏览器,就正常执行了! 效果如同上方gif图一样! 【tips:必须使用Per.js >= 3.0版本】

优秀的个人博客,低调大师

安卓开发学习笔记(四):Android Stuidio无法实现隐式Intent是为什么?

一.首先检查我们的代码: FirstActivity.java(主活动程序当中的代码):Button3监听器后面的代码就是我们隐式Intent的业务逻辑所在了,大家可以往下面看看,大概在代码的第57行。 1 package com.example.lenovo.activitytest; 2 3 import android.support.v7.app.AppCompatActivity; 4 import android.os.Bundle; 5 import android.view.Menu; 6 import android.view.MenuItem; 7 import android.view.View; 8 import android.widget.Button; 9 import android.widget.Toast; 10 import android.content.Intent; 11 12 public class FirstActivity extends AppCompatActivity { 13 @Override 14 public boolean onCreateOptionsMenu(Menu menu) { 15 getMenuInflater().inflate(R.menu.main,menu);//第一个参数表示我们通过哪一个资源来引用菜单当中的全部资源 16 // 第二个参数表示菜单被添加到哪一个对象当中 17 return true;//这句话表示我们创建的菜单是可以显示出来的,但是仅仅显示还是不够的,还需要真正地让菜单上的选项起作用。 18 } 19 @Override 20 public boolean onOptionsItemSelected(MenuItem item)//这里定义菜单为一个响应式事件 21 { 22 switch (item.getItemId()) 23 { 24 case(R.id.add_item): 25 26 Toast.makeText(this,"你选择了增加",Toast.LENGTH_SHORT).show(); 27 break; 28 case(R.id.remove_item): 29 Toast.makeText(this,"你选择了减少",Toast.LENGTH_SHORT).show(); 30 break; 31 default://这个关键字是可以不要的 32 } 33 return true;//将菜单当中的显示出来 34 } 35 @Override 36 protected void onCreate(Bundle savedInstanceState) { 37 super.onCreate(savedInstanceState); 38 setContentView(R.layout.first_layout); 39 Button button1=(Button)findViewById(R.id.button_1); 40 button1.setOnClickListener(new View.OnClickListener() { 41 @Override 42 public void onClick(View v) { 43 Toast toast=Toast.makeText(FirstActivity.this,null,Toast.LENGTH_SHORT); 44 toast.setText("只有傻逼才会按这个按钮"); 45 toast.show();//利用这种方法就可以去掉前面的APP名称了,而且这种创建对象的方法也更可以令人理解 46 } 47 }); 48 Button button2=(Button)findViewById(R.id.button_2); 49 button2.setOnClickListener(new View.OnClickListener() { 50 @Override 51 public void onClick(View v) { 52 Toast.makeText(FirstActivity.this,"只有不学习的人才会按这个按钮", 53 Toast.LENGTH_SHORT).show(); 54 } 55 }); 56 Button button4=(Button)findViewById(R.id.button_4); 57 button4.setOnClickListener(new View.OnClickListener() { 58 @Override 59 public void onClick(View v) { 60 /*Intent intent=new Intent(FirstActivity.this,SecondActivity.class); 61 startActivity(intent); 62 我们这里已经使用了显示intent,现在开始进行隐式intent的使用,首先应该在xml当中进申明 63 *///这就是所谓的显示intent了,相对于来说这已经是十分容易实现的了。 64 Intent intent=new Intent("com.example.lenovo.activitytest.ACTION_START"); 65 startActivity(intent); 66 } 67 }); 68 Button button3=(Button)findViewById(R.id.button_3); 69 button3.setOnClickListener(new View.OnClickListener() { 70 @Override 71 public void onClick(View v) { 72 Intent intent=new Intent(FirstActivity.this,SecondActivity.class); 73 startActivity(intent); 74 } 75 }); 76 77 78 79 } 80 81 } 二.注册在主活动上的代码需要补上: 1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="com.example.lenovo.activitytest"> 4 5 <application 6 android:allowBackup="true" 7 android:icon="@mipmap/ic_launcher" 8 android:label="@string/app_name" 9 android:roundIcon="@mipmap/ic_launcher_round" 10 android:supportsRtl="true" 11 android:theme="@style/AppTheme"> 12 <activity 13 android:name=".FirstActivity" 14 android:label="这是一个让人感到好笑的APP"> 15 <intent-filter> 16 <action android:name="android.intent.action.MAIN" /> 17 18 <category android:name="android.intent.category.LAUNCHER" /> 19 </intent-filter> 20 </activity> 21 <activity android:name=".SecondActivity" 22 android:label="这是一个严肃的APP"> 23 <intent-filter><!-- 这里是一个隐式的intent申明--> 24 <action android:name="com.example.lenovo.activitytest.ACTION_START"/> 25 <category android:name="android.intent.category.DEFAULT"/> 26 <category android:name="com.example.lenovo.activitytest.MY_CATEGORY"/> 27 </intent-filter> 28 </activity> 29 </application> 30 31 </manifest> 从中我们可以看到我们注册在XML界面上,<intent-filter>后面的代码为<action android:name="com.example.lenovo.activitytest.ACTION_START"/>,action中间name的名称一定要注意。这个里面的名称是不能够乱写的,这里名称将会和刚刚前面主活动当中的代码相呼应: 1 Button button4=(Button)findViewById(R.id.button_4); 2 button4.setOnClickListener(new View.OnClickListener() { 3 @Override 4 public void onClick(View v) { 5 /*Intent intent=new Intent(FirstActivity.this,SecondActivity.class); 6 startActivity(intent); 7 我们这里已经使用了显示intent,现在开始进行隐式intent的使用,首先应该在xml当中进申明 8 *///这就是所谓的显示intent了,相对于来说这已经是十分容易实现的了。 9 Intent intent=new Intent("com.example.lenovo.activitytest.ACTION_START"); 10 startActivity(intent); 11 } 12 }); 因此我们可以看到,里面的字符串均是com.example.lenovo.activitytest,不能够乱写。这行字符串是怎么得到的呢?我们可以在主活动当中的第一行代码当中可以找到其代码为:package com.example.lenovo.activitytest。这样的话,才可以进行正确地调用主活动当中的方法,实现隐式intent跳转。如果在xml当中仅仅写上:com.example.lenovo.activitytest.ACTION_START的话,这个活动在APP进行运行的时候就不会实现正常的跳转,从而销毁活动,造成失灵。这就是我们Android Stuidio无法实现隐式Intent的原因。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册