java学习笔记(2)——函数
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)——函数的更多相关文章
- Java学习笔记——回调函数
转载:http://wangyang0311.iteye.com/blog/368031 一般来说分为以下几步: 声明回调函数的统一接口interface A,包含方法callback(); 在调用类 ...
- Java 学习笔记(3)——函数
之前的几篇文章中,总结了java中的基本语句和基本数据类型等等一系列的最基本的东西,下面就来说说java中的函数部分 函数基础 在C/C++中有普通的全局函数.类成员函数和类的静态函数,而java中所 ...
- 【Java学习笔记】函数的可变参数
package p2; public class ParamterDemo { public static void main(String[] args) { int sum1 = add(4,5) ...
- 【Java学习笔记】函数使用
package aaa; public class aaa { public static int add(int a,int b) { return a+b; } public static voi ...
- Java学习笔记(04)
Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- [java学习笔记]java语言核心----面向对象之this关键字
一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理: 代表的是当前对象. this就是所在函数 ...
- [java学习笔记]java语言核心----面向对象之构造函数
1.构造函数概念 特点: 函数名与类名相同 不用定义返回值类型 没有具体的返回值 作用: 给对象进行初始化 注意: 默认构造函数 多个构造函数是以重载出现的 一个类中如果 ...
- Java学习笔记:语言基础
Java学习笔记:语言基础 2014-1-31 最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...
- Java学习笔记4
Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...
随机推荐
- ssi的使用 开启 配置等
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/lsfhack/article/details/69664402ssi的定义SSI(Server Si ...
- 《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 ...
- AE要素选择(点选和拉框选择)
原文 AE要素选择(点选和拉框选择) 选择一个要素或者一个要素集(FeatureSelection)的方法很多,如IMap::SelectByShape.ILayer::search.IFeature ...
- 基于PHP实现一个简单的在线聊天功能(轮询ajax )
基于PHP实现一个简单的在线聊天功能(轮询ajax ) 一.总结 1.用的轮询ajax 二.基于PHP实现一个简单的在线聊天功能 一直很想试着做一做这个有意思的功能,感觉复杂的不是数据交互和表结构,麻 ...
- POJ 3132 & ZOJ 2822 Sum of Different Primes(dp)
题目链接: POJ:id=3132">http://poj.org/problem?id=3132 ZOJ:http://acm.zju.edu.cn/onlinejudge/show ...
- [TypeStyle] Compose CSS classes using TypeStyle
We will demonstrate composing classes using the utility classes function. classes is also what we re ...
- [Swift] Storyboard outlet and action
To programmaictlly change the content of app, we need to contect storyboard to a view controller. To ...
- SDUT OJ 2862 勾股定理
#include<iostream> using namespace std; int a[1010]; void qsort(int a[],int l,int r) { int x=a ...
- ios开发核心动画五:转场动画
#import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutl ...
- 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 ...