「java函数的基本知识」java 函数

博主:adminadmin 2023-03-18 08:33:11 646

今天给各位分享java函数的基本知识的知识,其中也会对java 函数进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java基础都有那些?

一、标识符

java对各种变量、方法和类等要素命名时使用的字符序列成为标识符;通俗点,凡是自己可以起名字的地方都叫标识符,都遵守标识符的规则

1.标识符命名规则:

1)标识符由字符、下划线、美元符或数字组成。

2)标识符应以字符、下划线、美元符开头

3)java标识符大小写敏感,长度无限制

4)约定俗成,java标识符选取应该注意“见名知意”且不能与java语言的关键字(eclipes中带颜色的基本都是关键字)重名

二、关键字

java中一些赋以特定含义,用作专门用途的关键的字符串成为关键字(keyword);且大多数编辑器都会将关键字用特殊方式标出 所有java关键字都是小写英文

一些常用关键字:

三、java的基本数据类型

1.java常量

java的常量值用字符串表示,区分为不同的数据类型。如:整型常量:1234实型常量:3.14字符常量:’a’逻辑常量:true、false字符串常量:”HelloWorld”

注意:

1)区分字符常量和字符串常量

字符常量是单引号引起来的单个,字符串常量是双引号引起来的不限长度

由于java采用Unicode编码,每个字符占两个字节,因而可用天十六进制编码形式表示,当然也可以用一个中文表示(单个中文占用两个字节)

2)”常量”这个名次还会用在另外其他语境中表示值不可变的变量

2.java变量

java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。java程序中每一个变量都属于特定的数据类型,在使用前必需对其进行声明,声明格式为:type varName [=value]例如:int i =100;foloat f=12.3f;double d1,d2,d3=0.123;(声明了三个变量,其中d1,d2是默认值,d3=0.123)String s=”hello”

从本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此,每一个变量使用前必需先声明,然后必需进行赋值,才能使用。

1)java变量分类

按被声明的位置划分:

局部变量:方法或语句块内部定义的变量,只能在被定义的方法或语句块内使用

成员变量:方法外部、类的内部定义的变量,可以在整个类中使用,包括类里的方法或语句块内也可以使用

注意:类外面是不能有变量的声明的

按所属的数据类型划分:

基本数据类型变量

引用数据类型变量

四、运算符

java语言支持如下运算符:

算术运算符:+ - * / % ++ --

关系运算符: = = == !=

逻辑运算符:! | ^ ||

位运算符: | ^ ~

赋值运算符:=

拓展赋值运算符:+ = -= *= /=

字符串链接运算符:+

三目条件运算符 ? :

1.算数运算符

注意:

1)

位运算符中的!、、|、^跟罗技运算符相同,只是位运算符是对变量的二进制进行操作,我个人是用不到的,所以不在这里多做介绍

2)

++(—)

在前时先运算再取值

在后时先取值再运算

2.逻辑运算符

例如:

3.扩展赋值运算符

4.字符串连接符

“ + ”运算符两侧的操作数中只要有一个是字符串类型,系统会自动将另一个操作数转换为字符串然后进行连接,例如:

4 + 5 = 94 + “ab” = “4ab”

5.三目条件运算符

语法格式: x ? y : z 其中x为boolean类型表达式,先计算x的值,若为true,则整个三目运算的结果为表达式y的值,否则整个运算结果为表达式z的值。

五、表达式和语句

1.表达式

表达式是符合一定语法规则的运算符和操作数的序列,例如:a5.0 + a(a – b) * c – 4i 30 i %10 !=0

1)表达式的类型和值

表达式中的操作数进行运算得到的结果称为表达式的值

表达式值的数据类型即为表达式的类型

2)表达式的运算顺序

应按照运算符的优先级从高到低的顺序进行

优先级相同的运算符按照实现约定的结合方式进行

我个人觉得运算顺序这块是可以忽略的,首先我的逻辑思维能力不是特别强,另外我的记性也不是特别好,所以如果我需要在表达式中区分优先级的话我会选择加括号。但是我觉得对于一些比较复杂且关键的逻辑运算,如果个人逻辑运算能力加记忆都比较好可以保证不出错的话,善用罗技运算符优先级未尝不是一种不让别人看懂你代码copy的手段。算是一种小小的防护吧,反正我这种人是不会去尝试分析这种代码的,太累

2.分支(条件)语句

ifif  … elseif  … else if … else ifif  … else if … else  if …else

switch () {case xx:

……………case xx:

……………default:

……………}

1.java中switch语句只能探测int类型的值(char类型的值也可以,因为他可以转换城int类型)

2.小心case穿透,所以最好与break连用

3.多个case可以连用,如下的示例代码也可以这样写(当i=1,2,18都会输出18):

3.循环语句

for(…;…;…){……}while(…){……}先判断再执行大括号里面的内容,然后再判断是否要继续执行do{……} whille(…); 先执行大括号里面的内容再判断是否要继续执行

4.break continue语句

break语句用于终止某个语句块的执行。用在循环体语句中么可以强行退出循环continue语句用在循环体语句中,用于终止某次循环过程,跳过循环中continue语句下面未执行的循环,开始下一次循环过程

八、方法

java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,声明格式:[修饰符1  修饰符2  …] 返回值类型  方法名  (形式参数列表)  {

java语句}

形式参数:在方法被调用时用于接受外界输入的数据

实参:调用方法时实际纯给方法的数据

返回值:方法在执行完毕后返回给调用他的环境的数据

返回值类型:实现约定的返回值的数据类型,如无返回值,必需给出返回值类型void

java语言中调用方法:对象名.方法名(实参列表)

实参的数目、数据类型和次序必需和所调用方法声明的形参列表匹配

return语句终止方法的运行并指定要返回的数据

java中进行函数调用传递参数时,遵循值传递的原则:

基本类型传递的是该数据值本身,引用累心美国传递的是对对象的引用,而不是对象本身

例子中的方法1,前面定义的数据类型为void, 所以方法中不能有return返回值,方法4中因为有return返回值,所以前面必需定义为返回值的类型,也就是m4前面那个int

九、递归调用

递归调用是指在方法执行过程中出现该方法本身的调用

先看一个例子,这是一个简单的递归调用:

简单分析下:

1.首先main主方法中输出字符串,内容是test方法当参数等于5的时候的返回值2.然后将参数5传入test方法,返回值是:5 * test(4)3.再次将参数4传入test方法中,返回值是:4 * test(3)4.再将参数3传入test方法中,返回值是:3 * test(2)5.再讲参数2传入test方法中:返回值是:2 * test(1)6.再将参数1传入到方法中:返回值是:1然后程序开始往回走,返回值传入test(1)中得到2*1再往回走,将刚刚得到的2*1传入到test(2)中得到3*2*1还要往回走,将刚刚得到的3*2*1传入到test(3)中得到4*3*2*1还要往回走,将刚刚得到的4*3*2*1传入到test(4)中也就是test(5)的返回值,得到5*4*3*2*1最后将test5的返回值传入到我们的主方法输出于语句中5*4*3*2*1=120,那么我们的输出语句输出的应该为120

这就是简单的递归调用的例子了

再来看一个例子:

非递归的写法:

请自行领悟

最后奉上java基础语法完整学习路线图,除此之外还有精心整理的其他java学习路线图,学习书籍电子书,阿里巴巴手册,视频教程等即可点此领取:

java常用函数方法

Java的一些常用函数,方法总结:

1:数组方面:

数组是一个对象,数组名可以理解和C++里面一样,

1):System.arraycopy(src,srcindex,dst,dstindex,src.length);

2):java.util.Arrays.sort(数组名);//块数排序法进行排序

3):java.util.Arrays.binarySearch(arr,key);//从哪里收,关键值,返回索引.没有的话返回-1

4):java.util.Array.fill(arr,value),设置数组初始值

5):Array.equals(arr1,arr2)//比较两个数组中元素是不是全部相等,是返回true,不是返回false

2:时间方面:

public static String dateToStr(java.util.Date date)

{

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

String str = sdf.format(date);

return str;

}

import java.text.SimpleDateFormat;

import java.util.Calendar;

public class DateUtil

{

public static java.util.Date parseDate(String dateStr, String format)

{

java.util.Date date = null;

try

{

java.text.DateFormat df = new java.text.SimpleDateFormat(format);

String dt = dateStr.replaceAll("-", "/");

if ((!dt.equals("")) (dt.length() format.length()))

{

dt += format.substring(dt.length()).replaceAll("[YyMmDdHhSs]", "0");

}

date = (java.util.Date) df.parse(dt);

}

catch (Exception e)

{

}

return date;

}

public static java.util.Date parseDate(String dateStr)

{

return parseDate(dateStr, "yyyy/MM/dd");

}

public static String format(java.util.Date date, String format)

{

String result = "";

try

{

if (date != null)

{

java.text.DateFormat df = new java.text.SimpleDateFormat(format);

result = df.format(date);

}

}

catch (Exception e)

{

}

return result;

}

public static String format(java.util.Date date)

{

return format(date, "yyyy/MM/dd");

}

public static int getYear(java.util.Date date)

{

java.util.Calendar c = java.util.Calendar.getInstance();

c.setTime(date);

return c.get(java.util.Calendar.YEAR);

}

public static int getMonth(java.util.Date date)

{

java.util.Calendar c = java.util.Calendar.getInstance();

c.setTime(date);

return c.get(java.util.Calendar.MONTH) + 1;

}

public static int getDay(java.util.Date date)

{

java.util.Calendar c = java.util.Calendar.getInstance();

c.setTime(date);

return c.get(java.util.Calendar.DAY_OF_MONTH);

}

public static int getHour(java.util.Date date)

{

java.util.Calendar c = java.util.Calendar.getInstance();

c.setTime(date);

return c.get(java.util.Calendar.HOUR_OF_DAY);

}

public static int getMinute(java.util.Date date)

{

java.util.Calendar c = java.util.Calendar.getInstance();

c.setTime(date);

return c.get(java.util.Calendar.MINUTE);

}

public static int getSecond(java.util.Date date)

{

java.util.Calendar c = java.util.Calendar.getInstance();

c.setTime(date);

return c.get(java.util.Calendar.SECOND);

}

public static long getMillis(java.util.Date date)

{

java.util.Calendar c = java.util.Calendar.getInstance();

c.setTime(date);

return c.getTimeInMillis();

}

public static String getDate(java.util.Date date)

{

return format(date, "yyyy/MM/dd");

}

public static String getTime(java.util.Date date)

{

return format(date, "HH:mm:ss");

}

public static String getDateTime(java.util.Date date)

{

return format(date, "yyyy/MM/dd HH:mm:ss");

}

public static java.util.Date addDate(java.util.Date date, int day)

{

java.util.Calendar c = java.util.Calendar.getInstance();

c.setTimeInMillis(getMillis(date) + ((long) day) * 24 * 3600 * 1000);

return c.getTime();

}

public static int diffDate(java.util.Date date, java.util.Date date1)

{

return (int) ((getMillis(date) - getMillis(date1)) / (24 * 3600 * 1000));

}

public static String getMonthBegin(String strdate)

{

java.util.Date date = parseDate(strdate);

return format(date, "yyyy-MM") + "-01";

}

public static String getMonthEnd(String strdate)

{

java.util.Date date = parseDate(getMonthBegin(strdate));

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

calendar.add(Calendar.MONTH, 1);

calendar.add(Calendar.DAY_OF_YEAR, -1);

return formatDate(calendar.getTime());

}

public static String formatDate(java.util.Date date)

{

return formatDateByFormat(date, "yyyy-MM-dd");

}

public static String formatDateByFormat(java.util.Date date, String format)

{

String result = "";

if (date != null)

{

try

{

SimpleDateFormat sdf = new SimpleDateFormat(format);

result = sdf.format(date);

}

catch (Exception ex)

{

ex.printStackTrace();

}

}

return result;

}

}

Java日期格式化及其使用例子

1 SimpleDateFormat担当重任,怎样格式化都行

import java.util.Date;

import java.text.SimpleDateFormat;

public class Demo

{

public static void main(String[] args)

{

Date now=new Date();

SimpleDateFormat f=newSimpleDateFormat("今天是"+"yyyy年MM月dd日 E kk点mm分");

System.out.println(f.format(now));

f=new SimpleDateFormat("a hh点mm分ss秒");

System.out.println(f.format(now));

}

}

2 从字符串到日期类型的转换:

import java.util.Date;

import java.text.SimpleDateFormat;

import java.util.GregorianCalendar;

import java.text.*;

publicclass Demo

{

public static void main(String[] args)

{

String strDate="2005年04月22日";

//注意:SimpleDateFormat构造函数的样式与strDate的样式必须相符

SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy年MM月dd日");

//必须捕获异常

try

{

Date date=simpleDateFormat.parse(strDate);

System.out.println(date);

}

catch(ParseException px)

{

px.printStackTrace();

}

}

}

3 将毫秒数换转成日期类型

import java.util.Date;

import java.text.SimpleDateFormat;

import java.util.GregorianCalendar;

import java.text.*;

public class Demo

{

public static void main(String[] args)

{

long now=System.currentTimeMillis();

System.out.println("毫秒数:"+now);

Date dNow=new Date(now);

System.out.println("日期类型:"+dNow);

}

}

4 获取系统时期和时间,转换成SQL格式后更新到数据库

java.util.Date d=new java.util.Date(); //获取当前系统的时间

//格式化日期

new java.text.SimpleDateFormat s= new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String dateStr = s.format(d); //转为字符串

使用RS更新数据库,仍然要用rs.updateString,而不是rs.updateDade。

rs.updateString("regtime",dateStr); //regtime字段为datetime类型的

5 按本地时区输出当前日期

Date myDate = new Date();

System.out.println(myDate.toLocaleString());

输出结果为:

2003-5-30

6 如何格式化小数

DecimalFormat df = new DecimalFormat(",###.00");

double aNumber = 33665448856.6568975;

String result = df.format(aNumber);

Sytem. out.println(result);

输出结果为:

33,665,448,856.66

其他:获取毫秒时间 System.currentTimeMillis();

7 在数据库里的日期只以年-月-日的方式输出

定义日期格式:SimpleDateFormat sdf = new SimpleDateFormat(yy-MM-dd);

sql语句为:String sqlStr = "select bookDate from roomBook where bookDate between '2007-4-10' and '2007-4-25'";

输出:

System.out.println(df.format(rs.getDate("bookDate")));

Java初学者应掌握哪些常用的系统函数?

基本概念:1.OOP中唯一关系的是对象的接口是什么,就像计算机的销售商她不管电源内部结构 是怎样的,他只关系能否给你提供电就行了,也就是只要知道can or not而不是how and why。所有的程序是由一定的属性和行为对象组成的,不同的对象的访问通过函数调用来完成,对象间所有的交流都是通过方法调用,通过对封装对象数据,很大 限度上提高复用率。2.OOP中最重要的思想是类,类是模板是蓝图,从类中构造一个对象,即创建了这个类的一个实例(instance)。3.封装:就是把数据和行为结合起在一个包中)并对对象使用者隐藏数据的实现过程,一个对象中的数据叫他的实例字段(instance field)。4.通过扩展一个类来获得一个新类叫继承(inheritance),而所有的类都是由Object根超类扩展而得,根超类下文会做介绍。5.对象的3个主要特性ehavior---说明这个对象能做什么。tate---当对象施加方法时对象的反映。dentity---与其他相似行为对象的区分标志。每个对象有唯一的indentity 而这3者之间相互影响。6.类之间的关系:use-a :依赖关系has-a :聚合关系is-a :继承关系--例:A类继承了B类,此时A类不仅有了B类的方法,还有其自己的方法.(个性存在于共性中)7.构造对象使用构造器:构造器的提出,构造器是一种特殊的方法,构造对象并对其初始化。例:Data类的构造器叫Dataew Data()---构造一个新对象,且初始化当前时间。Data happyday=new Data()---把一个对象赋值给一个变量happyday,从而使该对象能够多次使用,此处要声明的使变量与对象变量二者是不同的.new返回的值是一个引用。构造器特点:构造器可以有0个,一个或多个参数; 构造器和类有相同的名字;一个类可以有多个构造器;构造器没有返回值;构造器总是和new运算符一起使用。8.重载:当多个方法具有相同的名字而含有不同的参数时,便发生重载.编译器必须挑选出调用哪个方法。9.包(package)Java允许把一个或多个类收集在一起成为一组,称作包,以便于组织任务,标准Java库分为许多包。java.lang java.util java,net等,包是分层次的所有的java包都在java和javax包层次内。10.继承思想:允许在已经存在的类的基础上构建新的类,当你继承一个已经存在的类时,那么你就复用了这个类的方法和字段,同时你可以在新类中添加新的方法和字段。11.扩展类:扩展类充分体现了is-a的继承关系. 形式为:class (子类) extends (基类)。12.多态:在java中,对象变量是多态的.而java中不支持多重继承。13.动态绑定:调用对象方法的机制。(1)编译器检查对象声明的类型和方法名。(2)编译器检查方法调用的参数类型。(3)静态绑定:若方法类型为priavte static final 编译器会准确知道该调用哪个方法。(4)当程序运行并且使用动态绑定来调用一个方法时,那么虚拟机必须调用x所指向的对象的实际类型相匹配的方法版本。(5)动态绑定:是很重要的特性,它能使程序变得可扩展而不需要重编译已存代码。14.final类:为防止他人从你的类上派生新类,此类是不可扩展的。15.动态调用比静态调用花费的时间要长。16.抽象类:规定一个或多个抽象方法的类本身必须定义为abstract。例: public abstract string getDescripition17.Java中的每一个类都是从Object类扩展而来的。18.object类中的equal和toString方法。equal用于测试一个对象是否同另一个对象相等。toString返回一个代表该对象的字符串,几乎每一个类都会重载该方法,以便返回当前状态的正确表示。(toString 方法是一个很重要的方法)19.通用编程:任何类类型的所有值都可以同object类性的变量来代替。20.数组列表:ArrayList动态数组列表,是一个类库,定义在java.uitl包中,可自动调节数组的大校21.class类 object类中的getclass方法返回ckass类型的一个实例,程序启动时包含在main方法的类会被加载,虚拟机要加载他需要的所有类,每一个加载的类都要加载它需要的类。22.class类为编写可动态操纵java代码的程序提供了强大的功能反射,这项功能为JavaBeans特别有用,使用反射Java能支持VB程序员习惯使用的工具。能够分析类能力的程序叫反射器,Java中提供此功能的包叫Java.lang.reflect反射机制十分强大。A.在运行时分析类的能力。B.在运行时探察类的对象。C.实现通用数组操纵代码。D.提供方法对象。而此机制主要针对是工具者而不是应用及程序。反射机制中的最重要的部分是允许你检查类的结构.用到的API有:java.lang.reflect.Field 返回字段。java.reflect.Method 返回方法。java.lang.reflect.Constructor 返回参数。方法指针:java没有方法指针,把一个方法的地址传给另一个方法,可以在后面调用它,而接口是更好的解决方案。23.接口(Interface)说明类该做什么而不指定如何去做,一个类可以实现一个或多个interface。24.接口不是一个类,而是对符合接口要求的类的一套规范。若实现一个接口需要2个步骤:A.声明类需要实现的指定接口。B.提供接口中的所有方法的定义。声明一个类实现一个接口需要使用implements 关键字class actionB implements Comparable 其actionb需要提供CompareTo方法,接口不是类,不能用new实例化一个接口。25.一个类只有一个超类,但一个类能实现多个接口。Java中的一个重要接口:Cloneable26.接口和回调.编程一个常用的模式是回调模式,在这种模式中你可以指定当一个特定时间发生时回调对象上的方法。例:ActionListener 接口监听。类似的API有:java.swing.JOptionPanejava.swing.Timerjava.awt.Tookit27.对象clone:clone方法是object一个保护方法,这意味着你的代码不能简单的调用它。28.内部类:一个内部类的定义是定义在另一个内部的类。原因是:A.一个内部类的对象能够访问创建它的对象的实现,包括私有数据。B.对于同一个包中的其他类来说,内部类能够隐藏起来。C.匿名内部类可以很方便的定义回调。D.使用内部类可以非常方便的编写事件驱动程序。29.代理类(proxy):A.指定接口要求所有代码B.object类定义的所有的方法(toString equals)30.数据类型:Java是强调类型的语言,每个变量都必须先申明它都类型,java中总共有8个基本类型.4种是整型,2种是浮点型,一种是字符型,被用于Unicode编码中的字符,布尔型。

java函数是什么意思?

函数就是一个动作一个行为哈,比如杀人防火这个动作,那就需要写两个函数,一个函数是杀人另一个函数是放火。

在写函数时,只需要关注函数的返回值和参数就可以了,比如两个数相加的函数,那参数肯定就是2个数,我要实现那两个数的相加,那返回值就是两个数的之和。

只要明白了上面的东西,函数的写法就很容易了。

第一个是写函数访问修饰符

后面是函数的返回值

函数名称(参数列表)

{

函数体(就是要实现函数的功能)

}

java基础知识有那些

Java 程序设计基础,包括 J2sdk基础、Java面向对象基础、Java API使用、数据结构及算法基础、Java AWT图形界面程序开发;

J2SE平台Java程序设计,包括Swing图形程序设计, Socket网络应用程序设计,对象序列化,Java 常用数据结构,Applet,流和文件,多线程程序设计;

………………………………

看你问的问题,应该是对java很感兴趣,其实你可以自学java。关于如何学习java,我刚才看到一篇很不错的文章,是一个农民工介绍自己如何自学java,并找到Java的工作,里面介绍了他的学习方法和学习过程,希望对你有帮助。

我是一名地地道道的农民工,生活在经济落后的农村,有一个哥哥和一个弟弟,父母都是地道的农民,日出而作,日落而息,我从小到大学习一直很好,从小学到高一都,成绩在全级一直名列前茅,这样我也顺利了考上省的重点高中,然而,每个学期开学是家里最为难的时候,每次交学费都让父母发愁许久,家里为了给我筹钱读书,都借了不少钱,才让我读上高中。我知道我读到高中家里已经欠了好多债,为了减轻家里的负担,我选择了退学。

2009年我高一退学,为了给家里还债,干过建筑工地的小工,搞过塑料制品加工,送水工等等。很工资都很低,一个月也就1000多,加上加班费一个月能拿2000多一点,我每个月都向家里寄回800-1000元,到了2011年末,一次偶然的机会我接触了Java,听说Java的前景挺不错,工资相对于我一个农民工来说简直是天文数字,于是我在新华书店买了几本Java的书,尽管白天辛苦工作,晚上回来还是坚持看书,但有于基础太差很多都很不明白,但还是坚持看,一有看1-2个小时Java的书,看着看着许多基础都慢慢的学会了,但那些比较难的还是看不懂,后来还买了有些关于框架的书,还是看不懂,这样断断续续的持续了半年多,觉得自己Java的基础都差不多懂了,但框架还是看不懂,还有最缺的项目经验,看了很多招聘Java程序员的简介都要项目经验,相对我一个农民工来连框架都弄不明白,想找一份Java工作对我来说简直是奢侈。我只想学Java,并不敢想以后能从事Java的工作。

有一次,在百度上看到一篇让我很鼓舞的文章,是一个Java高手介绍在没有基础的朋友怎么自学入门Java,文章写的很好,包含了如何学习,该怎么学习,他提到一个方法就是看视频,因为看书实在太枯燥和费解的,不少是我们也看不懂,这点我真的很认同,我自己看书都看了很久才学会基础。曾经有想过参加培训,但是上万元的培训费让我望而却步,我工资这么低,每个月还有向家里汇钱,加上城市消费比较高,虽然每个月只有几百剩下,但是相对于上万万学费和四个月的吃住费用逼我连想不敢想。 于是我决定看视频,我就去搜索Java的视频,虽然我零星的找到一些Java的视频,但是都不系统。最重要连项目都没有。后来我找到一份很好的视频,是IT学习联盟这个网站一套视频叫零基础Java就业班(喜欢《零基础Java就业班》的可以复制 t.cn/8sx5z6L 粘贴浏览器地址栏按回车键即打开)的教程还不错,很完整。还赠送11个顶级企业项目。价格很合理,于是我买下来。

于是开始了我的自学Java的路,收到光盘后,我就开始学习,刚开始学习还不错,是从零基础教起,老师幽默风趣而又轻松的课堂教课,使我发现原来学习JAVA并不是一件很难的事情。因为我本来基础还不错,前面的基础看一篇我就过去了,到了框架,我觉不又不是很难,可能老师太牛了,他能把复杂的问题讲的比较通俗易懂,有些难点的地方我还是连续看了五六次,把他弄懂。每天下午6点下班后,吃了饭,马上跑回家。看视频,买了几本笔记本。当时,为了编程还花几百元了台二手的台式电脑,配置一般,但编程是足够的。一边看视频,一边记笔记,把重点都记下来,还一边跟着老师敲代码,为了能尽早学会Java。每天都坚持学5-6个小时。经常学到晚上一点多才睡觉。星期六,日不用上班,每天7点多起床,学到晚上11,12点。那段时间特别辛苦,特别累。在学习Java的三个多月里,除了吃饭睡觉工作,剩余的时间都在学习,因为我知道自己的计算机基础不是很好,也没有学过什么计算机,只是学了些Java基础,相对于那些科班的人来说我要比他们付出更多的努力。我只能咬紧牙关,坚持下去,我不能放弃,我要完成我的梦想,我要让我的家人过上好日子。终于三个多月后我把Java教程里的内容和项目都学完了,在学项目的过程中我发现项目特别重要,他能把你学过的知识全部联系起来,能更好的理解你所学的知识。还有学习过程中,动手很重要,要经常跟着老师动手敲,动手吧,跟着做,一行一行的跟着敲,再试着加一些自己的功能,按照自己的思路敲一些代码,收获远比干听大的多。 如果遇到暂时对于一些思路不能理解的,动手写,先写代码,慢慢你就会懂了。这套视频还赠送了11个顶级企业项目,对于我没有任何经验的人来说,这个太重要了,还有在学习项目是提升能力最快的方法。项目能把所有的知识点全都连到一起了,不再是分散的,而是形成一个整体了。那种感觉是仅仅深入钻研知识点而不写真实项目的人所不能体会的。一个项目就是一根绳子可以把大片的知识串到一起。 就这样,我用了两个月也把项目给学完了。其实学完教程差不错就达到就业水平,但是我可能觉得自己学历低还是把那11个顶级企业项目才去找工作。

接着我就到51job疯狂的投简历,因为我的学历问题,初中毕业,说真的,大公司没有人会要我。所以我头的都是民营的小公司,我希望自己的努力有所回报。没有想过几天后,就有面试了,但是第一次面试我失败了,虽然我自认为笔试很好,因为我之前做了准备,但是他们的要求比价严格,需要有一年的项目经验,所以我没有被选中。 后来陆续面试了几加公司,终于功夫不负有心人,我终于面试上了一家民营的企业。公司规模比较小,我的职务是Java程序员。我想我比较幸运,经理看中我的努力,就决定吕勇我,开的工资是3500一个月,虽然我知道在北京3500只能过温饱的生化,但是我想我足够了,比起以前的工资好了些,以后可以多寄些钱回家。我想只要我继续努力。我工资一定会翻倍的。 把本文写出来,希望能让和我一样的没有基础的朋友有信心,其实我们没有自卑,我们不比别人笨,只有我们肯努力,我们一样会成功。

…………………………………………

java语法基础有哪些?

1,关键字:其实就是某种语言赋予了特殊含义的单词。

保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词。

2,标示符:其实就是在程序中自定义的名词。比如类名,变量名,函数名。包含 0-9、a-z、$、_ ;

注意:

1),数字不可以开头。

2),不可以使用关键字。

3,常量:是在程序中的不会变化的数据。

4,变量:其实就是内存中的一个存储空间,用于存储常量数据。

作用:方便于运算。因为有些数据不确定。所以确定该数据的名词和存储空间。

特点:变量空间可以重复使用。

什么时候定义变量?只要是数据不确定的时候,就定义变量。

变量空间的开辟需要什么要素呢?

1,这个空间要存储什么数据?数据类型。

2,这个空间叫什么名字啊?变量名称。

3,这个空间的第一次的数据是什么? 变量的初始化值。

变量的作用域和生存期:

变量的作用域:

作用域从变量定义的位置开始,到该变量所在的那对大括号结束;

生命周期:

变量从定义的位置开始就在内存中活了;

变量到达它所在的作用域的时候就在内存中消失了;

数据类型:

1):基本数据类型:byte、short、int、long、float、double、char、boolean

2):引用数据类型: 数组、类、接口。

级别从低到高为:byte,char,short(这三个平级)--int--float--long--double

自动类型转换:从低级别到高级别,系统自动转的;

强制类型转换:什么情况下使用?把一个高级别的数赋给一个别该数的级别低的变量;

运算符号:

1)、算术运算符。

+ - * / % %:任何整数模2不是0就是1,所以只要改变被模数就可以实现开关运算。

+:连接符。

++,--

2)、赋值运算符。

= += -= *= /= %=

3)、比较运算符。

特点:该运算符的特点是:运算完的结果,要么是true,要么是false。

4)、逻辑运算符。

| ^ ! ||

逻辑运算符除了! 外都是用于连接两个boolean类型表达式。

: 只有两边都为true结果是true。否则就是false。

|:只要两边都为false结果是false,否则就是true

^:异或:和或有点不一样。

两边结果一样,就为false。

两边结果不一样,就为true.

和 区别: :无论左边结果是什么,右边都参与运算。

:短路与,如果左边为false,那么右边不参数与运算。

| 和|| 区别:|:两边都运算。

||:短路或,如果左边为true,那么右边不参与运算。

5)、位运算符:用于操作二进制位的运算符。

| ^

(无符号右移)

练习:对两个变量的数据进行互换。不需要第三方变量。

int a = 3,b = 5;--b = 3,a = 5;

a = a + b; a =8;

b = a - b; b =3;c

a = a - b; a =5;

a = a ^ b;//

b = a ^ b;//b= a ^ b ^ b = a

a = a ^ b;//a= a ^ b ^ a = b;

练习:高效的算出 2*8 ------------------ 位移运算的考验,java基础面试中它的曝光率不低哦

5,语句。

If switch do while while for

这些语句什么时候用?

1)、当判断固定个数的值的时候,可以使用if,也可以使用switch。

但是建议使用switch,效率相对较高。

switch(变量){

case 值:要执行的语句;break;

default:要执行的语句;

}

工作原理:用小括号中的变量的值依次和case后面的值进行对比,和哪个case后面的值相同了

就执行哪个case后面的语句,如果没有相同的则执行default后面的语句;

细节:1):break是可以省略的,如果省略了就一直执行到遇到break为止;

2):switch 后面的小括号中的变量应该是byte,char,short,int四种类型中的一种;

3):default可以写在switch结构中的任意位置;如果将default语句放在了第一行,则不管expression与case中的value是否匹配,程序会从default开始执行直到第一个break出现。

2)、当判断数据范围,获取判断运算结果boolean类型时,需要使用if。

3)、当某些语句需要执行很多次时,就用循环结构。

while和for可以进行互换。

区别在于:如果需要定义变量控制循环次数。建议使用for。因为for循环完毕,变量在内存中释放。

break:作用于switch ,和循环语句,用于跳出,或者称为结束。

break语句单独存在时,下面不要定义其他语句,因为执行不到,编译会失败。当循环嵌套时,break只跳出当前所在循环。要跳出嵌套中的外部循环,只要给循环起名字即可,这个名字称之为标号。

代码片段:

z: //for循环标号

for(int x=0;x3;x++){

for(int y=0;y2;y++){

//不带标号的就是结束整个循环体的作用,在那个循环内部就结束哪个循环

if(x==1)break;

//带标号跳过break后面的语句,回到标号位置的循环,继续该循环下次的条件判断,

//已决定是否执行该循环体

if(x==2y==1)break z;

}

}

continue:只作用于循环结构,继续循环用的。

作用:结束本次循环,继续下次循环。该语句单独存在时,下面不可以定义语句,执行不到。

6,函 数:为了提高代码的复用性,可以将其定义成一个单独的功能,该功能的体现就是java中的函数。函数就是体现之一。

java中的函数的定义格式:

修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数1,…){

执行语句;

return 返回值;

}

当函数没有具体的返回值时,返回的返回值类型用void关键字表示。

如果函数的返回值类型是void时,return语句可以省略不写的,系统会帮你自动加上。

return的作用:结束函数。结束功能。

如何定义一个函数?

函数其实就是一个功能,定义函数就是实现功能,通过两个明确来完成:

1)、明确该功能的运算完的结果,其实是在明确这个函数的返回值类型。

2)、在实现该功能的过程中是否有未知内容参与了运算,其实就是在明确这个函数的参数列表(参数类型参数个数)。

函数的作用:

1)、用于定义功能。

2)、用于封装代码提高代码的复用性。

注意:函数中只能调用函数,不能定义函数。

主函数:

1)、保证该类的独立运行。

2)、因为它是程序的入口。

3)、因为它在被jvm调用。

函数定义名称是为什么呢?

答:1)、为了对该功能进行标示,方便于调用。

2)、为了通过名称就可以明确函数的功能,为了增加代码的阅读性。

重载的定义是:在一个类中,如果出现了两个或者两个以上的同名函数,只要它们的参数的个数,或者参数的类型不同,即可称之为该函数重载了。

如何区分重载:当函数同名时,只看参数列表。和返回值类型没关系。

7,数 组:用于存储同一类型数据的一个容器。好处:可以对该容器中的数据进行编号,从0开始。数组用于封装数据,就是一个具体的实体。

如何在java中表现一个数组呢?两种表现形式。

1)、元素类型[] 变量名 = new 元素类型[元素的个数];

2)、元素类型[] 变量名 = {元素1,元素2...};

元素类型[] 变量名 = new 元素类型[]{元素1,元素2...};

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

//二分查找法。必须有前提:数组中的元素要有序。

public static inthalfSeach_2(int[] arr,int key){

int min,max,mid;//定义最小,最大,中间数

min = 0;//最小为0

max =arr.length-1;// 最大为数组的长度-1

mid =(max+min)1; //(max+min)/2;//中间数为最大加最小除以2

while(arr[mid]!=key){//如果数组中间值不等于key

if(keyarr[mid]){//如果key中间值

min = mid+ 1;

}

elseif(key

max = mid- 1;

if(max

return -1;

mid =(max+min)1;

}

return mid;

}

知识拓展:

java内存。

1:寄存器。2:本地方法区。3:方法区。4:栈。5:堆。

栈:存储的都是局部变量 ( 函数中定义的变量,函数上的参数,语句中的变量 );

只要数据运算完成所在的区域结束,该数据就会被释放。

堆:用于存储数组和对象,也就是实体。啥是实体呢?就是用于封装多个数据的。

1:每一个实体都有内存首地址值。

2:堆内存中的变量

关于java函数的基本知识和java 函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。