int a = 1;

a = a++;

1,取出a的值1作为a++表达式的值(a++表达式等于1)

2,a增加1变为2

3,执行赋值运算,a++表达式的值再赋给a,a又成为了1.

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

package pack01;





public class HexBie {

public static void main(String[] args){

int a = 1;

a = a++;

System.out.println(a);

int b = 1;

a = 1;

b = a++;

System.out.println(b);

a = 1;

for(int i=0;i<1000;i++){

a = a++;

}

System.out.println(a);

}

}

---------

1

1

1

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

数组拷贝函数

System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

Arrays.copyOf(int[] original, int newLength)  //6.0以后才有

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

package pack01;

import java.util.Arrays;

public class HexBie {

public static void main(String[] args){

int[] arr = {1, 2, 3, 4};

int[] arr2 = new int[2];

System.arraycopy(arr, 1,arr2,0, 2);

for(int i:arr2){

System.out.println(i);

}

int[] arr3 = new int[2];

arr3 = Arrays.copyOf(arr, 2);

for(int i:arr3){

System.out.println(i);

}

}

}

-------

2

3

1

2

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

数组的扩展问题:

java中数组的大小是固定的,数组对象是不能扩展的,可以利用数组复制的方法实现数组扩展

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

package pack01;

import java.util.Arrays;

public class HexBie {

public static void main(String[] args){

String[] arr1 = {"how","old"};

String[] temp =  Arrays.copyOf(arr1, 5);

String[] arr2 = temp;

arr2[2] = "are";

arr2[3] = "you";

arr2[4] = "?";

for(String s:arr2){

System.out.print(s+"\t");

}

}

}

----------

how old
are you
?

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

package pack01;

import java.util.Arrays;

public class HexBie {

public static void main(String[] args){

char[] arr1 = {'a','b'};

System.out.println(arr1);

//字符数组以字符串的形式输出

System.out.println(Arrays.toString(arr1));

int[] arr2 = {1, 2};

System.out.println(arr2);

//数字数组输出的是数组对象内存地址

System.out.println(Arrays.toString(arr2));

String[] arr3 = {"a","b"};

System.out.println(arr3);

//字符串数组输出的是数组对象的内存地址

System.out.println(Arrays.toString(arr3));

}

}

----------

ab

[a, b]

[I@de6ced

[1, 2]

[Ljava.lang.String;@c17164

[a, b]

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

/**

 * 统计一个字符在字符串中的所有位置

 */

package pack01;

import java.util.Arrays;

public class HexBie {

public static void main(String[] args){

String str = "统计一个字符在字符串中的所有位置";

int[] arr = countAll(str, '字');

System.out.println(Arrays.toString(arr));

}





private static int[] countAll(String str, char c) {

int arr[]={}; 

for(int i=0;i<str.length();i++){

char c1 = str.charAt(i);

if(c == c1){

arr = Arrays.copyOf(arr, arr.length+1);

arr[arr.length-1] = i;

}

}

return arr;

}

}

------

[4, 7]

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

常见的排序方法:

正排序:由大到小。 反排序:由小到大。

1,冒泡法:

2,选择法:

3,插入法:

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

/**

 *常用的排序

 */

package pack01;

import java.util.Arrays;

public class HexBie {

public static void main(String[] args){

int[] arr1 = {2,4,9,6,3,7,1,5,8};

int[] arr2 = {2,4,9,6,3,7,1,5,8};

int[] arr3 = {2,4,9,6,3,7,1,5,8};

maoPao(arr1); //冒泡法

xuanZe(arr2); //选择法

chaRu(arr3);  //插入法

System.out.println(Arrays.toString(arr1));

System.out.println(Arrays.toString(arr2));

System.out.println(Arrays.toString(arr3));

}

//将要插入的数和前面的比较

private static void chaRu(int[] arr) {

int t,j;

for(int i=0;i<arr.length;i++){

t = arr[i];

for(j=i-1;j>=0&&t<arr[j];j--){

arr[j+1] = arr[j]; //向后移

}

arr[j+1] = t;

}



}

//将最小的选择出来放在前面,依次类推

private static void xuanZe(int[] arr) {

for(int i=0;i<arr.length;i++){

for(int j=i+1;j<arr.length;j++){

if(arr[i]>arr[j]){

arr[i] = arr[i] + arr[j];

arr[j] = arr[i] - arr[j];

arr[i] = arr[i] - arr[j];

}

}

}



}

//两个两个交换,就像冒泡泡一样

private static int[] maoPao(int[] arr) {

for(int i=0;i<arr.length;i++){

for(int j=0;j<arr.length-i-1;j++){

if(arr[j+1]<arr[j]){

arr[j+1] = arr[j+1]^arr[j];

arr[j] = arr[j]^arr[j+1];

arr[j+1] = arr[j+1]^arr[j];

}

}

}

return arr;

}

}

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

[1, 2, 3, 4, 5, 6, 7, 8, 9]

[1, 2, 3, 4, 5, 6, 7, 8, 9]

[1, 2, 3, 4, 5, 6, 7, 8, 9]

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

方法的递归调用:

递归调用不断在栈内存中声明变量,所以递归效率较低。

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

/**

 * n的阶乘

 */

package pack01;

import java.util.Arrays;

public class HexBie {

public static void main(String[] args){

int y = f(4);

System.out.println(y);

}

public static int f(int n){

if(n==0) return 1;

int y = f(n-1)*n;

return y;

}

}

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

java学习笔记(2)——函数的更多相关文章

  1. Java学习笔记——回调函数

    转载:http://wangyang0311.iteye.com/blog/368031 一般来说分为以下几步: 声明回调函数的统一接口interface A,包含方法callback(); 在调用类 ...

  2. Java 学习笔记(3)——函数

    之前的几篇文章中,总结了java中的基本语句和基本数据类型等等一系列的最基本的东西,下面就来说说java中的函数部分 函数基础 在C/C++中有普通的全局函数.类成员函数和类的静态函数,而java中所 ...

  3. 【Java学习笔记】函数的可变参数

    package p2; public class ParamterDemo { public static void main(String[] args) { int sum1 = add(4,5) ...

  4. 【Java学习笔记】函数使用

    package aaa; public class aaa { public static int add(int a,int b) { return a+b; } public static voi ...

  5. Java学习笔记(04)

    Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...

  6. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  7. [java学习笔记]java语言核心----面向对象之this关键字

    一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理:         代表的是当前对象.         this就是所在函数 ...

  8. [java学习笔记]java语言核心----面向对象之构造函数

    1.构造函数概念 特点: 函数名与类名相同 不用定义返回值类型 没有具体的返回值 作用:                给对象进行初始化 注意: 默认构造函数 多个构造函数是以重载出现的 一个类中如果 ...

  9. Java学习笔记:语言基础

    Java学习笔记:语言基础 2014-1-31   最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...

  10. Java学习笔记4

    Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...

随机推荐

  1. ssi的使用 开启 配置等

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/lsfhack/article/details/69664402ssi的定义SSI(Server Si ...

  2. 《Springboot极简教程》问题解决:Springboot启动报错 Whitelabel Error Page: This application has no explicit mapping for(转)

    13.2 Spring Boot启动报错:Whitelabel Error Page 13.2 Spring Boot启动报错:Whitelabel Error Page 问题描述 Whitelabe ...

  3. AE要素选择(点选和拉框选择)

    原文 AE要素选择(点选和拉框选择) 选择一个要素或者一个要素集(FeatureSelection)的方法很多,如IMap::SelectByShape.ILayer::search.IFeature ...

  4. 基于PHP实现一个简单的在线聊天功能(轮询ajax )

    基于PHP实现一个简单的在线聊天功能(轮询ajax ) 一.总结 1.用的轮询ajax 二.基于PHP实现一个简单的在线聊天功能 一直很想试着做一做这个有意思的功能,感觉复杂的不是数据交互和表结构,麻 ...

  5. POJ 3132 &amp; ZOJ 2822 Sum of Different Primes(dp)

    题目链接: POJ:id=3132">http://poj.org/problem?id=3132 ZOJ:http://acm.zju.edu.cn/onlinejudge/show ...

  6. [TypeStyle] Compose CSS classes using TypeStyle

    We will demonstrate composing classes using the utility classes function. classes is also what we re ...

  7. [Swift] Storyboard outlet and action

    To programmaictlly change the content of app, we need to contect storyboard to a view controller. To ...

  8. SDUT OJ 2862 勾股定理

    #include<iostream> using namespace std; int a[1010]; void qsort(int a[],int l,int r) { int x=a ...

  9. ios开发核心动画五:转场动画

    #import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutl ...

  10. Best Practices for QML and Qt Quick

    Despite all of the benefits that QML and Qt Quick offer, they can be challenging in certain situatio ...