java菜鸟教程17,菜鸟初学Java如何系统学习
java菜鸟教程17,菜鸟初学Java如何系统学习详细介绍
本文目录一览: 菜鸟初学Java如何系统学习
对于很多想要进入互联网行业的人来说,如何开始学习Java编程呢?初学编程最重要的一步就是了解自己,静下心来考虑自己想要做什么,是否喜欢编程,是否喜欢Java,并且在学习的过程中,自己能否坚持和用心的学习下去。在学习的过程中最重要的就是喜欢,只有喜欢才能学好。那么在学习的过程中需要做什么呢?下面昌平电脑培训为大家具体介绍。
一、学习前的准备
在学习Java前,最重要的是需要掌握学习Java的基础知识,学习计算机的技术和Java知识是密不可分的。首先就是安装JDK,解决安装JDK存在的问题,在安装过程中,可以在网络上面找一些相应的答案,多学习、多动脑思考,用心做好学习前的准备。
二、Java基础的学习
Java系统主要分为JavaSE,JavaEE和JavaME(分别是JDK5.0,J2EE,J2EE和J2ME),JavaSE是所有课程里面的基础。无论你做什么,基础都是非常重要的,所以如果你想进入Java领域,那么首先就是JavaSE的学习。
三、JavaEE的学习
学习JavaSE之后,这个时候基本已经奠定了良好的基础。接下来,就是选择根据自己的喜好学习JavaEE或JavaME。根据目前的情况,大多数人会选择JavaEE。学习JavaEE,还需要选择一个编程工具,NetBeans、IDE或Eclipse,北京java培训建议在学习的过程中都可以尝试体验一下,最后选择一个适合自己的进行使用。
四、知识储备
在开始使用JavaEE之后,由于您的开发需求不同,在学习过程中需要扩展您的知识及学习Spring,Hibernate和各种Web框架(例如Struts,JSF,Webwork或Tapestry)。需要保证技术和经验在一定程度上积累。并且还需要考虑更高层次的知识,例如分析和设计。在学习过程中可以进一步了解UML,模式和其他相关知识。
在学习知识的过程中,不断的练习是非常重要的,俗话说熟能生巧,在学习任何知识最重要的都是多练习,如果只看书不做练习,那么北京IT培训认为想要掌握计算机知识是非常困难的,用心学习,掌握Java的开发技术。
JAVA怎样获取数组长度?
public class Test {
public static void main(Sring[] args) {
int[] ary = {1,3,5,7,8} ; //数组中装了5个元素
String str = "helloword!"; //字符串底层是字符数组,字符个数就是字符串的长度
int a = ary.length; //数组有个属性为该数组的长度
int s = str.length(); //字符串类String有个length()方法,取得当前字符串的长度
System.out.println(a);
System.out.println(s); //将两个长度打印出来
}
}
扩展资料:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
参考资料:百度百科-JAVA
先定义一个数组,使用数组的length属性就可以返回数组长度,示例如下
int a[]={1,2,3,4}
int b=a.length
此时b的值就是a数组的长度4
扩展资料
所谓数组,是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。这些无序排列的同类数据元素的集合称为数组。
参考资料来源:菜鸟教程:Java实例-获取数组长度
String ids="M01;1;1;1";
String[] str=ids.split(";");
int v=str.length;
System.out.println(v); //v就是str的长度。
如果是java集合,LIST SET之类的 就可以。.size();获取长度。
如 int w=list.size(); 那么W就是这个集合的大小。
System.out.println( 数组.length );
arrayname.length 就是数组长度
1、打开Eclipse,新建项目,在项目src目录新建一个类,为了更好操作数组,Java为数组提供length属性,用来获取数组长度,语法格式如下。
2、创建整形类型变量array,初始化赋值为{1, 2, 3, 4, 5},创建整形类型变量len,用变量array获取变量len的数组长度。
3、用下标来引用数组元素和获取数组长度,可以用循环语句来访问数组所有元素。
4、从前到后访问数组元素是数组的遍历,也是迭代。
5、在Java SE 5.0平台,增加了增强型for循环的语法,称为for-each循环,用来遍历数组更为合适。
6、创建整形类型数组,初始化赋值,用for-each循环,用变量aa访问数组array中的每个元素的值。
java中如何计算出两个日期之间相差多少天
java可以使用计算日期的天数差,以下是详细代码:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class test16 {
/**
* @param args
* @throws ParseException
*/
public static void main(String[] args) throws ParseException {
// TODO Auto-generated method stub
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d1=sdf.parse("2012-09-08 10:10:10");
Date d2=sdf.parse("2012-09-15 00:00:00");
System.out.println(daysBetween(d1,d2));
System.out.println(daysBetween("2012-09-08 10:10:10","2012-09-15 00:00:00"));
}
/**
* 计算两个日期之间相差的天数
* @param smdate 较小的时间
* @param bdate 较大的时间
* @return 相差天数
* @throws ParseException
*/
public static int daysBetween(Date smdate,Date bdate) throws ParseException
{
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
smdate=sdf.parse(sdf.format(smdate));
bdate=sdf.parse(sdf.format(bdate));
Calendar cal = Calendar.getInstance();
cal.setTime(smdate);
long time1 = cal.getTimeInMillis();
cal.setTime(bdate);
long time2 = cal.getTimeInMillis();
long between_days=(time2-time1)/(1000*3600*24);
return Integer.parseInt(String.valueOf(between_days));
}
/**
*字符串的日期格式的计算
*/
public static int daysBetween(String smdate,String bdate) throws ParseException{
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.setTime(sdf.parse(smdate));
long time1 = cal.getTimeInMillis();
cal.setTime(sdf.parse(bdate));
long time2 = cal.getTimeInMillis();
long between_days=(time2-time1)/(1000*3600*24);
return Integer.parseInt(String.valueOf(between_days));
}
}
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test {
public static void main(String[] args) throws ParseException {
String date1="1987-01-01";
String date2="2010-01-01";
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd");
Date d1=sdf.parse(date1);
Date d2=sdf.parse(date2);
long daysBetween=(d2.getTime()-d1.getTime()+1000000)/(3600*24*1000);
System.out.println("1987-01-01 与 2010-01-01 相隔 "+daysBetween+" 天");
}
}
public long differ(Date date1, Date date2){
return date2.getTime() / 86400000 - date1.getTime()/ 86400000;
}
(big.getTime() - small.getTime()) / (1000 * 60 * 60 * 24);
@Testpublic void test2() throws ParseException{String str1="2010-01-01";String str2="2010-01-02";SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Date date1 = sdf.parse(str1);Date date2 = sdf.parse(str2);if(date1.getTime() > date2.getTime()) {//date1大System.out.println((date1.getTime() - date2.getTime())/86400000);} else {//date2大System.out.println((date2.getTime() - date1.getTime())/86400000);}}
思路就是根据它们相差的毫秒数除以每天的毫秒数(60*60*24*1000),代码如下:
public static void main(String[] args) throws ParseException {
String date1="1987-01-01";
String date2="2010-01-01";
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd");
Date d1=sdf.parse(date1);
Date d2=sdf.parse(date2);
long daysBetween=(d2.getTime()-d1.getTime()+1000000)/(60*60*24*1000);
System.out.println("1987-01-01 与 2010-01-01 相隔 "+daysBetween+" 天");
}
运行结果如下:
扩展资料:
Java使用以下三种方法来比较两个日期:
1、使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。
2、使用方法 before(),after() 和 equals()。例如,一个月的12号比18号早,则 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。
3、使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。
SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行
例如:
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");
这一行代码确立了转换的格式,其中 yyyy 是完整的公元年,MM 是月份,dd 是日期,HH:mm:ss 是时、分、秒。
注意:有的格式大写,有的格式小写,例如 MM 是月份,mm 是分;HH 是 24 小时制,而 hh 是 12 小时制。
以上实例编译运行结果如下:
当前时间为: 2018-09-14 10:16:34
参考资料:
Java官方API接口-Date
菜鸟教程-Java 日期时间
java获取当前时间加半小时之后的时间
可以用System.currentTimeMillis()方法直接获得当前时间的毫秒数,再往后推算30分钟。码如下:
Long time = System.currentTimeMillis();//获得系统当前时间的毫秒数
System.out.println("获取当前系统时间为:"+new SimpleDateFormat("yyyy年-MM月dd日-HH时mm分ss秒").format(time));//转换成标准年月日的形式
Date date = new Date(time);
time +=30*1000*60;//在当前系统时间的基础上往后加30分钟
System.out.println("三十分钟后的时间为:"+new SimpleDateFormat("yyyy年-MM月dd日-HH时mm分ss秒").format(time));
系统运行结果如下:
扩展资料:
Java获得系统当前时间的四种方法如下:
1、Date day=new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(df.format(day));
通过Date类来获取当前时间
2、SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(df.format(System.currentTimeMillis()));
通过System类中的currentTimeMillis方法来获取当前时间
3、Calendar c = Calendar.getInstance();//可以对每个时间域单独修改
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int date = c.get(Calendar.DATE);
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
int second = c.get(Calendar.SECOND);
System.out.println(year + "/" + month + "/" + date + " " +hour + ":" +minute + ":" + second);
通过Calendar类来获取当前时间
4、 Date date = new Date();
String year = String.format("%tY", date);
String month = String.format("%tB", date);
String day = String.format("%te", date);
System.out.println("今天是:"+year+"-"+month+"-"+day);
通过Date类来获取当前时间
参考资料:
Oracle官方API接口-Java? Platform, Standard Edition 7API Specification
W3cSchool-Java 日期时间方法
菜鸟教程-Java 日期时间
java获取当前时间加半小时之后的时间:
1、获取当前时间,获取到的时间类型是long类型的,单位是毫秒
long currentTime = System.currentTimeMillis() ;
2、在这个基础上加上30分钟:
currentTime +=30*60*1000;
3、格式化时间,获取到的就是当前时间半个小时之后的时间
Date date=new Date(currentTime);
4、建立时间格式化对象:
SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
完整代码:
import java.text.SimpleDateFormat;import java.util.Date;public class Demo { public static void main(String[] args) { long curren = System.currentTimeMillis(); curren += 30 * 60 * 1000; Date da = new Date(curren); SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); System.out.println(dateFormat.format(da)); }}
不用那么繁杂的操作,下面即可:
Calendar now=Calendar.getInstance(); now.add(Calendar.MINUTE,30); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateStr=sdf.format(now.getTimeInMillis()); System.out.println(dateStr);
写代码思路不清,搞个date类型变量,没有用上
public static void main(String[] args) {
Calendar now=Calendar.getInstance();
now.add(Calendar.MINUTE,30);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String later=sdf.format(now.getTimeInMillis());
System.out.println(later );
}
java获取当前时间加半小时之后的时间:
SimpleDateFormat FORMAT2 = new SimpleDateFormat("HH:mm:ss");
一、步骤如下:
long currentTime = System.currentTimeMillis() + 30 * 60 * 1000;
Date date = new Date(currentTime);
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String nowTime="";nowTime= df.format(date);System.out.println(nowTime);
二、分析:
1、获取当前时间,获取到的时间类型是long类型的,单位是毫秒
2、在这个基础上加上30分钟:currentTime +=30*60*1000;
3、格式化时间,获取到的就是当前时间半个小时之后的时间Date date=new Date(currentTime);
4、建立时间格式化对象:
SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
扩展资料
JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一些Java工具和Java的核心类库(Java API)。
不论什么Java应用服务器实质都是内置了某个版本的JDK。主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如,IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK
另外,可以把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE(JAVA Runtime Environment),JRE是支持Java程序运行的标准环境
(参考资料 百度百科 Java)
Java学习路线是怎样的?
根据个人实际的经历,结合多种书籍,特别整理出了下面的java学习路线:
一、Java SE部分
1、java基础:基础语法;面向对象(重点);集合框架(重点);常见类库API;
2、java界面编程:AWT;事件机制;Swing;
3、java高级知识:Annotation;IO和NIO、AIO;多线程、线程池;阻塞、非阻塞、异步网络通信;反射、动态代理;
二、JDBC编程
4、SQL基础:基础SQL语句;基本查询;多表查询;子查询;结果集的交、并、差运算;
5、JDBC基础:常见数据库用法;JDBC操作常见数据库;RowSet与离线结果集;数据库连接池;事务管理、批处理;
6、JDBC进阶:存储过程、函数;触发器;理解JCBC的不足;掌握ORM工具优势和设计;
三、DHTML编程
7、HTML基础:基本HTML标签;常见表单标签;DIV+CSS布局;
8、JavaScript知识:javascript基本语法;javascript基本对象特征;Json语法;深刻理解javascript的动态特征;
9、Dom和事件机制:DOM操作、编程;常见浏览器事件机制;掌握用户交互技巧;
四、XML编程
10、XML基础:XML基础规则;DTD和SCheme;XML和样式单;
11、XML进阶:DOM、SAX和JAXP;dom4j、JDOM等工具;XQuery和XQJ;基于XML的数据交换;
12、Web Service:JAX_WS2、SAAJ规范;WSDL和SOAP协议;CXF框架、拦截器;CXF整合Spring;
五、Java Web编程
13、Web编程基础:Tomcat服务器;Jsp语法、EL、内置对象;Servlet API;Servlet 3.0注解;Listener和Filter;
14、Web编程进阶:自定义标签库;MVC和DAO、Servlet、标签的作用;JSTL、DisplayTag等常见标签库用法;
15、Web编程原理:请求/响应、架构;Http协议;深刻理解Jsp运行原理;掌握Web容器底层的线程池、socket通信、调用Servlet的命令模式;
六、Ajax编程:
16、Ajax编程:XML HttpRequest和异步请求;发送请求和处理响应;常见Ajax库(Prototype、Jquery、ExtJs、DWR)用法;结合Http协议、异步请求深入研究ajax库的设计;
七、Android开发
17、Android基础:Android开发调试环境;Android应用结构;界面组件与界面编程;资源管理;四大组件;
18、Android中级:文件IO和SQLite;图形、图像与动画;音频、视频的录制与播放;传感器编程;GPS应用;
19、Android高级:网络编程与Web Service;OpenGL_ES 3D开发;整合Google服务;使用NDK开发;java和c相互调试;
八、轻量级Java EE
17、Struts2:MVC与struts体系;Action和Result;国际化和标签库;文件上传、下载;类型转换和输入检验;拦截器与插件开发;
18、Hibernate:ORM与持久化映射;关系映射、继承映射;延迟加载、性能调优;HQL查询、条件查询、SQL查询;二级缓存和查询缓存;
19、Spring:IoC与Bean配置、管理;Bean生命周期;SP、EL;AOP与事务权限控制;S2SH整合开发;Spring整合Jpa;
九、经典Java EE
20、JSF
:MVC与JSF设计理念;托管Bean与导航模型;JSF流程与事件机制;JSF标签库;类型转换与输入检验;
21、EJB及相关技术:JNPI与RMI;会话Bean及其生命周期;IoC与EJB拦截器;JMS与MDB;会话Bean与Web Service;
22、JPA:ORM框架与JPA规范;JPA注解与常用API;JTA事务与事务管理;JPQL查询;EJB、JPA整合;
十、Java 拓展、进阶:
23、Java EE实践与架构:Ant+Ivy或Maven;SVN、CVS;深刻理解10种以上设计模式;掌握各种Java EE架构及各自优势;
24、Workflow:Workflow规范及功能;JBPM等workflow框架;多次重构、反复思考;大型项目经验;
25、Java EE进阶:掌握各MVC框架运行原理、能开发类似框架;掌握Spring、HiveMind、AspectJ等框架原理、能开发类似工具;掌握Hibernate、iBatis等框架原理,能开发类似工具;深入研究EJB机制、大致了解应用服务器的实现;
希望对您有所帮助!~
说到学习Java,我们今天就来说说Java开发需要学习的内容,说说java学习路线,说说Java学习的课程内容。
Java学习大致分为四大阶段,具体内容如下:
第一阶段——Java基础
Java的学习内容从计算机基本概念,DOS命令开始,为你入门编程语言扫盲,什么是程序,如何配置Java开发环境,Java编程的过程是怎样的,Java有什么物特点,程序是如何运行的,这些你都可以在这里得到答案。
Java编程的基础语法,共分为10个知识点,我们将学习变量,基本数据类型,进制,转义字符,运算符,分支语句和循环语句等,以达到训练基础语法和逻辑能力的目的。还有对数组、面向对象和异常处理等。
第二阶段——JavaWeb
Web前端开发基础和框架、Servlet和JSP在Web后端的应用、Web后端开发相关专题、MVC和分层架构以及项目开发流程及CASE工具的使用等。
第三阶段——Java框架
框架是程序中另一种存储数据的方式,比直接使用数组来存储更加的灵活,在项目中应用十分广泛。同时,框架整合开发(SSH/SSS)、RESTful架构和移动端接口设计、第三方接口和在线支付功能、网站安全和Spring Security应用实战、复杂用户交互处理和Spring Web Flow的应用、MyBatis的应用和SSM整合,我们将深入研究其中涉及到的数据结构和算法,对学员的技术深度有了一个质的提升。
第四阶段——Java+云数据
亿级并发架构演进、Linux基础、搭建tomcat环境以实战演练,企业真实项目供学员应用学习,进行知识体系的“二次学习”。
其实学习Java技术,大可参考此学习路线,该学习路线对从零基础小白到Java初级开发工程师,Java高级开发工程师,后面的Java大神级开发工程师都有一个明确清晰的指导。
我自己学Java的时候,是从java基础开始学起,基础变量,数组,对象,集合。再到接口,泛型,IO,多线程。因为主要学习企业级java,所以之后跳过了JAVA SE,直接上手javaEE,包括servlet,jsp,再到后面的框架,spring ,struts,hibernate,之后是mybatis,springmvc。现在流行springboot,在学习框架期间,就会整合一些项目一同学习,由于项目的需要野就顺便学习了redis,shiro,nginx。学到这里能够自己搭建一个完整项目的话后面要学什么也就容易领悟了。
这里我就推荐一下这个网站的学习路线吧,学到哪点到哪,像技能树一样就知道下一步要学什么了,我也是按照这个路线学习的。java学习路线
作为刚入门Java的菜鸟,如何摆脱迷茫一步步成为别人口中的大神?
你好Java学习的路线,按照顺序学习就可以了,祝你早日学有所成。
Java学习路线
分享一份Java的学习路线,包含所有的知识点,可以参考下
第一阶段,Java SE基础:Java环境搭建、Java流程控制语句-for循环、switch选择判断、循环嵌套、数组拷贝、多维数组、final关键字、构造函数的调用、类的访问权限和路径、面向对象高级特性、Java异常处理、Set,Map,List接口及接口实现类、Java线程、同步阻塞、JavaIO流、文件的操作,复制,读写,删除等。
第二阶段,JavaWeb:MySQL安装、管理、创建数据库、MySQLUPDATE 查询、Mysql高级操作、JDBC、JDBC数据库连接操作,JDBC动态Sql处理、Servlet3.0 网页重定向、Servlet3.0 新增的注解支持、AJAX、responseText属性详解等。
第三阶段,Java高级框架-SSH:Struts2异常处理、Struts2+Log4j集成、Struts2和JSON实例、Hibernate5、Hibernate集合映射、Hibernate组件映射、Spring4.0、SpringAOP+ AspectJ框架、Spring 与其它Web框架集成、Spring Hibernate支持等。
第四阶段,Java高级框架-SSM:SpringMVC、Spring MVC生成JSON数据、MyBatis、MyBatis 环境配置及入门、Mybatis set标签、Mybatis trim标签、Shiro、Shiro快速入门教程、Shiro Web应用等。
第五阶段,SpringBoot+VUE全栈框架:SpringBoot、全局异常处理、过滤器监听器、EHCache缓存、SpringBoot Quartz定时任务、Vue、Vue.js 安装、模板语法、计算属性、事件处理器、Vue.js 自定义指令、Vue.js 路由等
第六阶段,特色课程:ActiveM环境搭建、生产者和消费者、消息持久化操作、RSA数字加密算法、Codebar条形码生成器、zxing二维码生成器、HighCharts统计图、Echarts统计图、网络播放器ckplayer、嵌入式网络播放器,可以浏览器和移动端随意使用
第七阶段,互联网框架的高级应用1:分布式服务框架的理解,Dubbo架构设计详解及其核心要点,框架运行原理分析、SpringData数据访问、Lucene搜索引擎、Lucene的全文搜索服务器介绍、索引建立方式、Solr海量数据搜索引擎、Socket网络通信、实现RMI远程对象通讯、使用JMS消息服务、Kafka分布式消息系统、WebService与RestfulWS等
第八阶段,互联网框架的高级应用2:Spring Security安全框架、实现Web应用安全控制、缓存应用与EhCache框架、OSCache与JBossCache框架、MyBatis与Hibernate缓存机制、NoSQL应用与SQL调优、MongoDBNoSQL数据库、Redis内存数据库、实现RedisSession共享、SQL语句的优化、实现数据库读写分离、WEB应用集群及性能优化、Maven项目管理工具、Web服务器负载均衡、实现Nginx与Tomcat集群、使用LoadRunner测试工具、性能优化之内存调优、代码优化与重构的方法等。
对java有兴趣的小伙伴们,不妨先从java入门开始!B站上有很多的java教学视频,从基础到高级的都有,还挺不错的,知识点讲的很细致,还有完整版的学习路线图。也可以自己去看看,下载学习试试。
选学>
菜鸟怎样才能把Java开发学好?
作为一个Java菜鸟,没有谁不想飞得更高的,但是现状往往是Java菜鸟不怎么能够在短期内飞得高,要飞得高有什么捷径吗?自然是有的,对于一个Java菜鸟来说,如何学Java,才能够成为人生的赢家呢?这就是北大青鸟小编今天要跟你一起讨论的问题,赶紧跟昌平镇北大青鸟往下看,Java菜鸟如何学Java好呢?
Java菜鸟如何学Java好呢?
1.很多Java菜鸟,选择学Java的方式,就是买多本Java书籍,书是买了,看没看,是个问题。看书学Java,这是有用的,这也是肯定的,但是书买得多就真的能够学好Java吗?其实,从大部分的Java菜鸟学习中,已经看出来了,从作用和效率来讲,初期看太多书学Java没多大用处的,书的作用在于让你查缺补漏,真正提升自己,而不是囫囵吞枣。
2.很多Java菜鸟甚至什么是Java都不知道,然后就直接开始了Java的学习,这就是我们时常采取的获取信息的方式,走马观花的学。走马观花,那么是肯定学不好Java的,这是毋庸置疑的。作为一个Java菜鸟,学习Java必须有一个系统的学习方案,系统的学习教程,这样才能够确保自己学到的Java效果最佳。
3.Java菜鸟如何学Java好呢?当下对于一个毫无编程经验的Java菜鸟来说,学Java最佳的方式,就是找一个靠谱的Java培训机构,因为自学Java,遭遇重重困难,都得自己一个人默默的解决,关键是很多时候都是无能为力,不知道该从何解决。而在Java培训机构,有着专业的老师永远是你坚强的后盾。
Java问题
Java里面String是不能更改的,Stringbuffer则是可以的。打个比方,String类似于常量,想要做操作需要重新定义一个变量,然后把这个常量先赋值给变量,然后对变量进行操作,最后把这个新的变量变成新的常量在赋值给最终的结果。用Stringbuffer就相当于显式定义了这个变量,对变量进行多次操作的开销比较小
可以用XML文件进行存储,也可以对数据进行增删改查,但不如数据库灵活。再就是proterites文件也可以存储。在java中有专门操作这些文件的类。操作xml一般用dom4j。
(1)检查sim卡是否可用。
(2)刚开机不久,java引擎忙碌。
如果都不行,卸载后重装一下看看。(该文件格式为jar)
因为对String字符串加减都底层都是调用的stringbuffer 然而不用字符串加减的情况下String又比stringbuffer快, 所以如题:字符串加减的时候用stringbuffer,而定义临时变量时用String,由于 返回要求String 所以最有又有一个stringbuffer强转String
纯手打 回答完毕 给采纳 谢谢
还有我看了一下下面别人的回答 线程不安全。。。看你用在哪里呢啊 这里怎么会不安全,现在都用8G,16G意思是反正内存打,内存都随便开销,都这样想尼玛 估计一个程序就吧内存用完了。
你说得很对啊 多余得
这里直接把s赋值给readContent是有问题的,问题点如下:
假设文件有两行
第一行
第二行
则读取循环两次,第一次s赋值给readContent,readContent的值为 "第一行",然后又循环,读取第二行,再次赋值,则readContent就会变成 "第二行",第一行的值就丢失了;
这里StringBuff的作用是把读取到的内容连接起来成为一个字符串;
不过这里的例子的确有问题,问题却不在StringBuffer上,而在 s 变量上,s中间两步是不必要的,循环内直接改成如下形式:
删除s.getBytes()和new String
另外,除了以上问题,来总结下这段代码的问题吧:
1、文件资源没有释放
2、在不涉及多线程的情况下,应使用StringBuilder类进行字符串拼接,而不是StringBuffer,因为StringBuilder更快(但是StringBuilder线程不安全,StringBuffer线程安全);
3、异常处理有问题,如果出现IO异常,就返回异常信息的字符串?那么如何区分这个字符串是发生了异常还是从文件中读取到的内容呢?这里不应该返回字符串,而是直接声明异常,有异常就向外抛,直到能处理的顶层程序处理。
基于以上几点,修改代码如下:
注意第27行,声明本方法可能抛出 IOException 异常,稍后主程序将进行处理。另外注意第30行,创建InputStreamReader 的时候指定了文件编码为utf8,以避免乱码,你的文件如果存储的是其他编码类型,则会出现乱码。
调用代码如下:
getContent函数调用主程序
注意18行和21行,是分别处理正常情况和异常情况,当读取异常时,将会调用第21行,打印异常信息;
整体代码如下:
全部代码
接下来我们看看代码执行情况。
1、当我们要读的文件不存在时,执行结果如下:
我们要读的文件不存在时,抛出异常
看,当文件不存在时,抛出异常,并由异常处理程序捕获和打印,你可以看到具体哪一行代码出错[getContent(App.java:29)],说明在App.java 文件中的getContent方法,文件的29行出错。
2、那么正常情况下呢?当然是输出文件内容了,我们放一个有如下内容的文件在"D:\\file.txt"处:
要读取的文件内容
执行结果如下:
正常情况下,输出文件内容
最后,我不知道你看的是什么书,是不是课本,但感觉质量不高,这里给你推荐几本,可以买来看看:
1、Head First java
2、菜鸟教程 Java
3、最权威的,自然是The Java? Language Specificati了
祝你学习之路顺利
java菜鸟,求大神帮帮忙????
import java.util.Scanner;public class StudentScore { static final int N = 5; private int i; private static float[] score = new float[N]; private static String[] name = new String[N]; void scoreEnter(){ Scanner sc = new Scanner(System.in); System.out.println("开始录入成绩:"); for(i=0;i
<n;i++){ system.out.print(i+1+". 学生姓名:"); name[i]="sc.next();" system.out.print("成绩:"); score[i]="sc.nextFloat();" } void scorelist(){ int sumscore system.out.println("编号\t"+"姓名\t"+"成绩"); system.out.println("------------------------------------"); for(i="0;i<N;i++){" system.out.println(i+1+"\t"+name[i]+"\t"+score[i]); +="score[i];" system.out.println("平均成绩:"+sumscore n); scorequery(){ string inname; scanner sc="new" scanner(system.in); system.out.print("请输入要查询的学生姓名:"); inname="sc.next();" if(inname.equals(name[i])){ system.out.println(i+1+".学生姓名: "+name[i]+",成绩:"+score[i]); break; if(i="=" n) system.out.println("没有找到该学生!"); public static main(string[] args) { flag="sc.nextInt();" system.out.println("**********欢迎进入成绩管理系统**********"); while (flag !="4)" system.out.print("请选择功能:1——成绩录入,2——成绩列表,3——成绩查询,4——退出:"); studentscore stscore="new" studentscore(); switch(flag){ case 1:stscore.scoreenter();break; 2:stscore.scorelist();break; 3:stscore.scorequery();break; 4:system.out.println("*************谢谢体验*************");break; default :break; }}
望采纳^_^
java中+号的作用是?
在Java中,加号“+”的作用有以下几种:
1】数学加法运算符:用于对两个数值进行相加操作,如a + b表示将变量a和b的值相加。
2】字符串连接运算符:用于将两个字符串拼接成一个新的字符串,如str1 + str2表示将字符串str1和str2连接起来形成一个新的字符串。
3】自增自减运算符:用于对变量进行自增或自减操作,如i++表示将变量i的值自增1。
4】类型转换运算符:在某些情况下,可以使用加号将不同类型的数据进行类型转换,如int x = (int) 3.14 + 2。
"+"就是用来拼接前后的字符串或者代码的。双引号里面的内容会直接输出到控制台,代表一个常量字符串。所有不带引号的,比如最后面的i,必须是计算机所能识别的值,可以是你已经定义过的参数,也可以是系统自己能直接获得的参数。
举个例子,代码如下:
int i=5;
System.out.println("i = " +i );//+表示字符串拼接,不会在真正的输出出来
String j="百度知道";
System.out.println(j);//上面已经定义过就,所以程序知道j的至,不加引号
System.out.println("直接输出百度知道");//加引号,自己定义的字符串,直接输出引号里面的所有内容
System.out.println(new Date());//不加引号,程序可以自己获得系统当前时间
看一下输出的结果:
扩展资料:
println的源码如下:
public void println(Object x) {
String s = String.valueOf(x);
synchronized (this) {
print(s);
newLine();
}
}
print的源码如下:
public void print(String s) {
if (s == null) {
s = "null";
}
write(s);
}
参考资料:
Oracle官方API接口-PrintStream
菜鸟教程-Java 运算符