java课程分享JAVA程序员职业规划之路

java课程分享JAVA程序员职业规划之路,第1张

JAVA作为编程语言在社会的方方面面都体现了非一般的价值,那么在JAVA靴子成长的道路中,一个好的规划会带来多大的收益呢?java课程看看下面的就知道了!

先给大家划分一下程序员的级别和工作吧:

初级程序员:做一些静态的界面;

程序员:做一些增删改查的小模块;

中级程序员:做逻辑较复杂的模块;

高级程序员:做核心模块;

项目经理:系统的整体架构;

部门经理:多项目的管理;

总裁:多部门以及企业的发展规划。

如果刚毕业,就多花几年积累经验,不可能靠一门绝技吃遍天下,不要指望java开发赚钱多还是c++orNET赚钱多。太早。积累经验为主。积累设计,架构,测试,交流,管理,情商等多方面的经验。然后再根据以后n年的积累做出决定。理想的情况是一专,多能。必须有一样精通的,但是要知道,所谓的高手决不是只会一项,到了他们的级别,什么都一样,看的是学习能力和推理能力。所以,先静下心来积累经验

1、希望你能从中有所收获。

2、一定要确定自己的发展方向,并为此目的制定可行的计划。不要说什么,“我刚毕业,还不知道将来可能做什么?”,“跟着感觉走,先做做看”。因为,这样的观点会通过你的潜意识去暗示你的行为无所事事、碌碌无为。一直做技术,将来成为专家级人物?向管理方向走,成为职业经理人?先熟悉行业和领域,将来自立门户?还是先在行业里面混混,过几年转行做点别的?这很重要,它将决定你近几年、十年内“做什么事情才是在做正确的事情!”。

3、软件开发团队中,技术不是万能的,但没有技术是万万不能的!在技术型团队中,技术与人品同等重要,当然长相也比较重要哈,尤其在MM比较多的团队中。在软件项目团队中,技术水平是受人重视和尊重的重要砝码。无论你是做管理、系统分析、设计、编码,还是产品管理、测试、文档、实施、维护,多少你都要有技术基础。算我孤陋寡闻,我还真没有亲眼看到过一个外行带领一个软件开发团队成功地完成过软件开发项目,哪怕就一个,也没有看到。倒是曾经看到过一个“高学历的牛人”(非技术型)带一堆人做完过一个项目,项目交付的第二天,项目组成员扔下一句“再也受不了啦!”四分五裂、各奔东西。那个项目的“成功度”大家可想而知了。

这个没法实现!除非将数据保存到数据库!其他方式保存起来!

我说下逻辑!首先是为什么无法实现!因为你不知道,新的一天的数字是00001还是00002!

所以你得保存起来生成的数据!

产生新的数据的时候,先查询今天的日期,再去数据库查询最后那条数据!

如果日期相同就获得的日期 +1

如果日期不同就 今天的日期+00001

java8中的localdate和localtime用法举例如下:

这两个方法使我们可以方便的实现将旧的日期类转换为新的日期类,具体思路都是通过Instant当中介,然后通过Instant来创建LocalDateTime(这个类可以很容易获取LocalDate和LocalTime),新的日期类转旧的也是如此,将新的先转成LocalDateTime,然后获取Instant,接着转成Date,具体实现细节如下:

// 01 javautilDate --> javatimeLocalDateTime

public void UDateToLocalDateTime() {

javautilDate date = new javautilDate();

Instant instant = datetoInstant();

ZoneId zone = ZoneIdsystemDefault();

LocalDateTime localDateTime = LocalDateTimeofInstant(instant, zone);

}

// 02 javautilDate --> javatimeLocalDate

public void UDateToLocalDate() {

javautilDate date = new javautilDate();

Instant instant = datetoInstant();

ZoneId zone = ZoneIdsystemDefault();

LocalDateTime localDateTime = LocalDateTimeofInstant(instant, zone);

LocalDate localDate = localDateTimetoLocalDate();

}

// 03 javautilDate --> javatimeLocalTime

public void UDateToLocalTime() {

javautilDate date = new javautilDate();

Instant instant = datetoInstant();

ZoneId zone = ZoneIdsystemDefault();

LocalDateTime localDateTime = LocalDateTimeofInstant(instant, zone);

LocalTime localTime = localDateTimetoLocalTime();

}

// 04 javatimeLocalDateTime --> javautilDate

public void LocalDateTimeToUdate() {

LocalDateTime localDateTime = LocalDateTimenow();

ZoneId zone = ZoneIdsystemDefault();

Instant instant = localDateTimeatZone(zone)toInstant();

javautilDate date = Datefrom(instant);

}

// 05 javatimeLocalDate --> javautilDate

public void LocalDateToUdate() {

LocalDate localDate = LocalDatenow();

ZoneId zone = ZoneIdsystemDefault();

Instant instant = localDateatStartOfDay()atZone(zone)toInstant();

javautilDate date = Datefrom(instant);

}

// 06 javatimeLocalTime --> javautilDate

public void LocalTimeToUdate() {

LocalTime localTime = LocalTimenow();

LocalDate localDate = LocalDatenow();

LocalDateTime localDateTime = LocalDateTimeof(localDate, localTime);

ZoneId zone = ZoneIdsystemDefault();

Instant instant = localDateTimeatZone(zone)toInstant();

javautilDate date = Datefrom(instant);

}

JDK8中,新增了三个类,用以处理时间

LocalDate专门处理日期,LocalTime专门处理时间,LocalDateTime包含了日期和时间,而且对于很多复杂的问题,都提供了现成的方法,比如:获取2017年12月的第一个周一,这样的处理,在以前,是很复杂的,而现在,只需要一行代码即可。(使用前,需要将JDK升级到18)

下面,简单了记录了这两个类的一些常见用法:

[java] view plain copy

package test;

import javatimeDayOfWeek;

import javatimeLocalDate;

import javatimeLocalDateTime;

import javatimeLocalTime;

import javatimetemporalTemporalAdjusters;

import javautilCalendar;

/

 Created by lightClouds917

 Date 2017/11/6

 Description:Java8中处理时间和日期的类

SQL  -> Java

--------------------------

date -> LocalDate

time -> LocalTime

timestamp -> LocalDateTime

/

public class DateTest2 {

public static void main(String[] args){

test1();      

test2();

Calendar calendar = CalendargetInstance();

Systemoutprintln(calendargetTime());

}

/

 处理日期 LocalDate

/

public static void test1(){

//获取当前日期   2017-11-06

LocalDate today = LocalDatenow();

Systemoutprintln(today);  

//构造日期   2017-10-08

LocalDate today2 = LocalDateof(2017,10,8);

Systemoutprintln(today2);

//构造日期   2017-02-22    字符串严格按照yyyy-MM-dd      

LocalDate today3 = LocalDateparse("2017-02-22");

Systemoutprintln(today3);

//本月第一天  2017-11-01

LocalDate firstDayOfMonth = todaywith(TemporalAdjustersfirstDayOfMonth());

Systemoutprintln(firstDayOfMonth);

//本月第二天  2017-11-02   第n天

LocalDate secondDayOfMonth = todaywithDayOfMonth(2);

Systemoutprintln(secondDayOfMonth);

//本月最后一天 2017-02-28  方便解决任何年份的二月份多少天

LocalDate lastDayOfMonth = today3with(TemporalAdjusterslastDayOfMonth());

Systemoutprintln(lastDayOfMonth);

//获取2017年12月的第一个周一   2017-12-04  

LocalDate firstDayOf201712 = LocalDateparse("2017-12-01")with(TemporalAdjustersfirstInMonth(DayOfWeekMONDAY));

Systemoutprintln(firstDayOf201712);

}

/

 处理时间  LocalTime

/

public static void test2(){

//获取当前时间  含有毫秒值  17:18:41571

LocalTime now = LocalTimenow();

Systemoutprintln(now);

//获取当前时间   去掉毫秒值   17:45:41

LocalTime now1 = LocalTimenow()withNano(0);

Systemoutprintln(now1);

//00:46:46651  提供了把时分秒都设为0的方法

LocalTime now2 = LocalTimenow()withHour(0);

Systemoutprintln(now2);

//构造时间  00:20:55  

LocalTime time1 = LocalTimeof(0,20,55);

Systemoutprintln(time1);

//构造时间  05:43:22

LocalTime time2 = LocalTimeparse("05:43:22");

Systemoutprintln(time2);

//标准时间 2017-11-06T17:53:15930

LocalDateTime lt = LocalDateTimenow();

Systemoutprintln(lt);

}

}

int money = 0;//定义开始金额

int start = 1;//第一天的钱

for(int i = 0; i < 30; i ++)

{

    if(start == 1)

    {

        start = start2;

        money +=  1;

        break;

    }else{

        start = start2;

    }

  

    money += start;

}

syso(money)

刚写的,没测,你可以参考参考

import javatextSimpleDateFormat;

import javautilCalendar;

import javautilDate;

import javautilTimer;

import javautilTimerTask;

public class MyTimer{

public static void main(String[] args) {

Timer timer1=new Timer();

//每天早上6:30执行任务,2460601000为一天的时间

timer1schedule(new Task1(), getTargetDate(0,6,30,0), 2460601000);

//每个月1号执行任务

timer1schedule(new Task2(1), getTargetDate(1,6,30,0));

//每个月15号执行任务

timer1schedule(new Task2(2), getTargetDate(15,6,30,0));

}

/

获取第一次要执行的时间

参数说明:

day:一个月中的哪一天,默认为当前天

hour:几点 minute:多少分 second:多少秒 默认为00:00:00

可根据自己需要修改

/

public static Date getTargetDate(int day,int hour,int minute,int second){

SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date date=new Date();//当前时间

Calendar calendar=CalendargetInstance();

calendarsetTime(date);

if(day!=0){

calendarset(CalendarDAY_OF_MONTH,day);//设置哪一天

}

calendarset(CalendarHOUR_OF_DAY,hour);//设置几点

calendarset(CalendarMINUTE, minute);//设置多少分

calendarset(CalendarSECOND, second);//设置多少秒

if(calendargetTime()getTime()<dategetTime()){

//如果设置day 则认为是每个月执行,否则为每天执行

if(day!=0){

//获取下个月的规定时间

calendarset(CalendarMONTH, calendarget(CalendarMONTH)+1);

}else{

//获取第二天的规定时间

calendarset(CalendarDAY_OF_MONTH, calendarget(CalendarDAY_OF_MONTH)+1);

}

}

Systemoutprintln("下次任务开始时间:"+sfformat(calendargetTime()));

return calendargetTime();

}

}

class Task1 extends TimerTask{

@Override

public void run() {

Systemoutprintln("开始执行任务1:每天早上6:30");

}

}

class Task2 extends TimerTask{

public Task2(int type){//构造函数

thistype=type;

};

@Override

public void run() {

Systemoutprint("开始执行任务:");

if(type==1){

Systemoutprintln("每月1号任务执行完成");

thiscancel();

Timer timer1=new Timer();

timer1schedule(new Task2(1), MyTimergetTargetDate(1,6,30,0));

}

if(type==2){

Systemoutprintln("每月15号任务执行完成");

thiscancel();

Timer timer1=new Timer();

timer1schedule(new Task2(2), MyTimergetTargetDate(15,6,30,0));

}

}

private int type;//1号执行任务为1,15号执行任务为2

public int getType() {

return type;

}

public void setType(int type) {

thistype = type;

}

}

如果你是直接写的代码设置时间的,可以设置每48小时,翻翻API就有了,既然你问了,肯定是通过XML配置文件写的,那只能给一个解决方案了,在配置文件中虽然有0 0 0 1/2 来表示从每月1号起每2天0点0分0秒执行一次,但遇到31这样的月份就会错,不建议使用。

想到的解决方案有2种,一种设置成每天跑一次,定义个static boolean变量 第一次执行的时候改成false并执行,第2天的执行获取该值,发现是false把值变成true不执行,发现是true改成false执行。

第2种方法其实是为了防止项目被重启static变量重置的,这个boolean值(或者你自定义的标示符)放到数据库里,没天执行的时候读一下库。当然在指定位置生成一个空文件,每次执行判断该位置的文件是否存在也一样(覆盖项目的时候记得,如果这个文件有复制到相关位置就好了)

以上就是关于java课程分享JAVA程序员职业规划之路全部的内容,包括:java课程分享JAVA程序员职业规划之路、java 取当天日期+5位顺序号、如何在java8中愉快地处理日期和时间java8新增了localdate和localtim等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9532231.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存