Java工程师的工资待遇怎么样?
Java工程师的工资待遇怎么样?
Java软件工程师一般月薪范围在4000-10000元,远远超过了应届毕业生月薪 2500元的平均水平。通常来说,有一年工作经验的Java高级软件工程师的薪酬大致在年薪10—13万左右。
从Java的应用领域来分,Java语言的应用方向主要表现在以下三个方面:首 先是大中型的商业应用;其次是桌面应用,就是常说的C/S应用;再次是移动领域应用。
综上而言JAVA就业方向为:可以从事JSP网站开发、Java编程、Java游戏开 发、Java桌面程序设计,以及其他与Java语言编程相关的工作。可进入电信、银行、保险专业软件开发公司等从事软件设计和开发工作。
流行框架
流行框架
01Struts2
1.Struts2流程
2.值栈与ONGL
3.Struts2标签库
4.Struts2模型驱动原理
5.Struts2声明式异常处理
6.Struts2类型转换&自定义类型转换
7.Struts2拦截器原理&自定义拦截器
8.Struts2源码分析&运行原理
02Hibernate
1.Hibernate环境搭建&配置
2.hibernate.cfg.xml&主键生成策略
3.Session核心方法
4.ORM映射:单向/双向1-n映射
5.ORM映射:基于主/外键映射&n-n
6.检索策略&迫切左外连接
7.Hibernate缓存机制
8.QBC、HQL
9.Session管理
03Spring
1.SpringIOC&DI机制
2.Spring配置式组件管理
3.Spring注解式自动装配
4.Spring表达式语言
5.SpringAOP&动态代理
6.SpringJDBC使用
7.Spring声明式事务
8.Spring单元测试
9.Spring源码分析
10.Spring、Struts2、Hibernate整合
04SpringMVC
1.SpringMVC配置&运行流程
2.SpringMVC数据绑定
3.模型处理&@ModelAttribute
4.RestFulCRUD
5.表单标签&静态资源处理
6.数据转换&格式化&JSR303数据校验
7.HttpMessageConverter
8.Ajax&国际化&文件上传**
9.异常处理
10.整合&父子容器
05MyBatis
1.MyBatis配置&查询数据
2.MyBatis全局配置文件
3.MyBatis映射文件
4.关联查询,动态sql
5.MyBatis缓存机制&整合ehcache
6.MyBatis逆向工程
7.MyBatis、Spring、SpringMVC整合
8.MyBatis运行原理&源码分析
9.MyBatis拦截器&插件开发
10.分页插件&存储过程调用&自定义 TypeHandler
06JPA
1.JPA技术体系
2.JPA注解
3.JPA相关API
4.JPA映射
5.JPQL
6.二级缓存
7.Spring整合JPA
07SpringData
1.SpringData快速入门
2.SpringData_Repository接口
3.Repository查询规范
4.@Query&@Modifying
5.CrudRepository
6.PagingAndSortingRepository
7.JpaRepository
8.JpaSpecificationExecutor
9.自定义Repository
08Maven
1.Maven环境搭建
2.Maven构建&自动化构建
3.本地仓库&中央仓库
4.maven创建web工程
5.pom.xml、依赖管理
6.坐标、依赖、生命周期等
7.eclipse下的maven使用
8.继承&聚合
9.maven构建SSH/SSM应用
10.自动部署&持续集成&持续部署
09SVN
1.SVN简介
2.SVN服务器搭建
3.SVN创建版本库
4.Eclipse整合svn插件
5.使用SVN更新提交
6.SVN仓库分析
7.SVN协同修改&冲突解决
8.SVN权限管理
9.SVN时光机
10.TortoiseSVN
10Shiro
1.Shiro入门
2.Spring集成Shiro
3.Shiro工作流程
4.权限URL配置
5.认证流程&认证Realm
6.密码比对,MD5&盐值加密
7.授权流程
8.标签&权限注解
9.会话管理、SessionDao
10.缓存
11.实现”记住我”
11Activiti5
1.工作流&工作流引擎
2.BPMN2.0规范
3.Activiti5框架表结构
4.Activiti5核心组件&服务接口
5.Activiti5插件安装&整合Spring
6.流程定义
7.流程实例&任务&历史
8.任务领取&流程变量
9.排他网关&并行网关
12WebService
1.WebService简介
2.WebService主流框架
3.cxf的使用
4.SOAP协议
5.WSDL讲解
6.JAX-WS
7.与Spring整合
8.JAXB
9.JAX-RS
10.支付接口原理
13Linux
1.Linux系统-基础
2.Linux网络基础
3.Linux在VMware下的安装
4.Linux下Java环境的搭建
5.Linux下Tomcat安装和配置
6.Linux下 Oracle/MySQL 安装与配置
7.Shell 编程
14Redis
1.NoSQL&Redis入门
2.Redis/memcache/MongDB对比
3.Redis安装&启动
4.分布式数据库CAP原理
5.Redis五大数据类型和基本操作命令
6.Redis总体配置Redis.conf
7.Redis持久化(RDB和AOF)
8.Redis事务控制
9.Redis发布和订阅
10.Redis(Master/Slave)主从复制
11.Jedis
15Git&Git Hub
1.Git安装配置
2.Git本地库搭建
3.Git常用操作命令
4.Github注册与配置
5.Github与Git协同办公
6.TortoiseGit安装配置
7.Egit操作push/pull,
8.Git工作流
9.集中式&GitFlow&Forking
16MySQL高级
1.MySQL架构组成
2.MySQL备份和恢复
3.MySQL查询和慢查询日志分析
4.MySQL索引优化
5.MySQL存储引擎优化
6.MySQL锁机制优化
7.MySQL高可用设计
8.MySQL集群
17JVM原理
1.JVM简析
2.JVM组成结构
3.JVM堆、栈原理
4.JVM-Heap三区原理
5.JVM垃圾收集机制
6.堆内存调优
7.GC回收策略
8.GC三大算法
18Quartz
1.Quartz作业调度简介
2.Quartz作业调度执行以及持久性
3.Quartz基本使用
4.Quartz核心类讲解
5.Quartz Trigger 触发器
6.Quartz Job&JobDetail
7.Quartz Calendars日历讲解
8.JobListener监听器和TriggerListener监听器
9.Spring整合Quartz
19Nginx
1.Nginx反向代理介绍
2.Nginx **和安装
3.Nginx 编译和启动、访问
4.在Linux下搭建Nginx集群
5.在Windows搭建Nginx集群
6.解决Session共享问题
20Java JUC 线程高级
1.volatile 关键字
2.内存可见性分析
3.原子变量与CAS (Compare And Swap) 算法分 析
4.ConcurrentHashMap 锁分段机制
5.CountDownLatch 闭锁
6.实现 Callable 接口
7.Lock 同步锁
8.Condition 控制线程通信
9.线程按序交替
Android 设置定时提醒,AlarmManager简单使用
>
给app设置定时提醒的功能,典型的例子有闹钟,AlarmManager是Android系统级的服务,原理相当的简单,当你设定一个时间,然后在到达时候后,系统触发一个广播,然后广播**PendingIntent来达到**终目的。 下面一步一步来说: 首先定义一个广播RemindReceiver.java用来接收系统提醒: RemindActivity是我们闹钟的展示界面。
public class RemindReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { ToastUtils.showMessage(context,"收到消息"); MediaPlayer.create(context, R.raw.remind).start(); Bundle bundle = intent.getExtras(); intent = new Intent(context, RemindActivity.class); intent.putExtras(bundle); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); }然后再AndroidManifest.xml中注册这个广播:
<receiver android:name="xxx.xxx.RemindReceiver" >添加一个提醒:
public class AlarmManageService { public static AlarmManager alarmManager; PRivate static String TAG = "AlarmManageService"; public static void addAlarm(Context context, int requestCode,Bundle bundle,int minute){ Intent intent = new Intent(context,RemindReceiver.class); intent.putExtras(bundle); PendingIntent pendingIntent = PendingIntent.getBroadcast(context,requestCode,intent,0); Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); calendar.add(Calendar.SECOND,60*minute); //注册新提醒 alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); alarmManager.set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),pendingIntent); } }这里Bundle 是用来携带信息的,跟intent携带信息一样。 这里使用Calendar 来设定一个将来的时间,为minute分钟之后;
calendar.setTimeInMillis(System.currentTimeMillis()); calendar.add(Calendar.SECOND,60*minute);AlarmManager有三个常用的方法: (1):设置一次性闹钟: AlarmManager.set(int type,long startTime,PendingIntent pendingIntent ); (2):该方法用于设置重复闹钟: setRepeating(int type,long startTime,long intervalTime,PendingIntent pendingIntent ); (3):该方法也用于设置重复闹钟: setInexactRepeating(int type,long startTime,long intervalTime,PendingIntent pendingIntent );
参数:int type: 闹钟的类型,常用的有5个值 分别是: a: AlarmManager.ELAPSED_REALTIME 表示闹钟在手机睡眠状态下不可用,该状态下闹钟使用相对时间(相对于系统启动开始),状态值为3;
b:AlarmManager.ELAPSED_REALTIME_WAKEUP 表示闹钟在睡眠状态下会唤醒系统并执行提示功能,该状态下闹钟也使用相对时间,状态值为2;
c:AlarmManager.RTC 表示闹钟在睡眠状态下不可用,该状态下闹钟使用绝对时间,即当前系统时间,状态值为1;
d:AlarmManager.RTC_WAKEUP 表示闹钟在睡眠状态下会唤醒系统并执行提示功能,该状态下闹钟使用绝对时间,状态值为0;
e:AlarmManager.POWER_OFF_WAKEUP 表示闹钟在手机关机状态下也能正常进行提示功能,所以是5个状态中用的**多的状态之一,该状态下闹钟也是用绝对时间,状态值为4。
参数:long startTime 闹钟开始时间,以毫秒为单位;
参数:PendingIntent pendingIntent:设定闹钟的动作,可以是Activity,BroadcastReceiver 等。
参数:long intervalTime:在第二个方法中指,两次闹钟的间隔时间,相等间隔;在第三个方法中也指两次闹钟间隔时间,不相等时间;
现在就可以设置闹钟了:
alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); alarmManager.set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),pendingIntent);**后就是使用了:
这里bundle携带信息,比如提示文字等等......,用于在RemindActivity界面展示 AlarmManageService.addAlarm(context,0,bundle,Integer.parseInt(result.getTxjg()));闹钟的基本使用方法大致就是这样了。
相关推荐: