发表于: 2019-11-20 01:49:10
3 1221
字符和字符串
int n1 = 'A';// 字母A的unicodde编码是65
int n2 = '中';// 汉字“中”的Unicode编码是20013
String s = ""; // 空字符串,包含0个字符
String s1 = "A"; // 包含一个字符
String s2 = "ABC"; // 包含3个字符
String s3 = "中文 ABC"; // 包含6个字符,其中有一个空
运算类
基本的运算算术运算
操作符 | 描述 | 例子 |
+ | 加法 - 相加运算符两侧的值 | A + B 等于 30 |
- | 减法 - 左操作数减去右操作数 | A – B 等于 -10 |
* | 乘法 - 相乘操作符两侧的值 | A * B等于200 |
/ | 除法 - 左操作数除以右操作数 | B / A等于2 |
% | 取余 - 左操作数除以右操作数的余数 | B%A等于0 |
++ | 自增: 操作数的值增加1 | B++ 或 ++B 等于 21(区别详见下文) |
-- | 自减: 操作数的值减少1 | B-- 或 --B 等于 19(区别详见下文) |
运算优先级
在Java的计算表达式中,运算优先级从高到低依次是:
- ()
- ! ~ ++ --
- * / %
- + -
- << >> >>>
- &
- |
- += -= *= /=
- 记不住问题也不大,直接用括号就确认就行
数组
定义数组
// 数据类型[ ] 数组名; 或者: 数据类型 数组名[ ];
// 数组的下标从0开始计算,下标越界会报错
int ages[]; //存放年龄的数组,类型为整型
char symbol[]; //存放符号的数组,类型为字符型
String [] name; //存放名称的数组,类型为字符串型
数组初始化
// 初始化
int [] ages = {12,18,9,33,45,60}; // 声明一个int类型的数组,有6个元素
char [] symbol = new char[10] //声明并分配了一个长度为10的char型数组
int [] a1 = {1,2,3}; // 将整个数组给赋值数组进行初始化
遍历数组
public class Dog{
public static void main(String[] args) {
int[] ns = { 28, 12, 89, 73, 65, 18, 96, 50, 8, 36 };
// for循环 遍历输出数组
for(int t = 0; t < ns.length; t++){
System.out.println(ns[t]);
} }
冒泡排序(图解)
public class Human {
// 在Human 的类下面创建三个属性:height age sex public 修饰符表示作为公用属性
public double height;
public int age;
public int sex;
// 创建Human的三个方法,cry、laugh、PrintBaseMes 加了public,是其作为方法作为公共的属性被访问和调用
public void cry(){
System.out.println("我在哭!");
}
public void laugh(){
System.out.println("我在笑!");
}
public void PrintBaseMes(){
System.out.println("我的身高是"+height+"cm");
System.out.println("我的年龄是"+age+"岁");
if (this.sex == 0)
System.out.println("我是男性!");
else
System.out.println("我是女性!");
}
流程控制
判断
if
if……else
If……else if
练习:小明考了 78 分,60 分以上及格,80 分以上为良好,90 分以上为优秀,60 分以下要重考
// 小明考学了 78 分,60 分以上及格,80 分以上为良好,90 分以上为优秀,60 分以下要重考
public class Practice {
public static void main(String[] args) {
int score = 80;
if (score >= 90) {
System.out.println("优秀");
} else {
if (score >= 80) {
System.out.println("良好");
} else {
if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格,重考");
}
}
}
}
}
switch……case语法
switch(表达式){
case 值1:
代码块1
break;
case 值2:
代码块2
break;
...
default:
默认执行的代码块
}
// 用switch来设计获奖情况
public class Practice {
public static void main(String[] args) {
int score = 8;
switch (score) {
case 1:
System.out.println("一等奖");
break;
case 2:
System.out.println("二等奖");
break;
case 3:
System.out.println("三等奖");
break;
default:
System.out.println("未获奖");
}
}
}
循环
do……while
直到XX条件成立
while
当什么条件成立
for
和while一样
break 和 continue
break 跳出整个循环
continue 跳过单次循环,到下一次开始
比如 例子如下:用continue
package learn_java00;
public class Continue {
public static void main(String[] args){
for (int i = 1; i <= 100; i++ ) {
if (0 == i % 2) { // 如果能够整除2,那就跳过本次循环,并且打印出这个数
continue;
} else {
System.out.println(i);
}
}
}
}
面向对象基础
> 类class:具有相同属性和行为的实体被称之为类(类是什么),类是描述具有相同属性和行为的模型,是具有相同属性和行为的对象的集合。
> 对象object:具有某些特征和行为的实体,一切都是对象
> 属性:对象具有的特征
> 方法(行为):对象所具有的操作
>> java作为面向对象的语言,其以class(类)作为组织单元,而类又由属性和方法构成。
如何定义一个类?
1 定义类名(类名最好写,)
2 编写属性
3 编写方法
public class Class {
// 编写属性
属性1 的类型 属性;
属性2 的类型 属性;// 编写方法
方法1;
方法2;
}
package learn_java00;
public class Human {
// 在Human 的类下面创建三个属性:height age sex public 修饰符表示作为公用属性
public double height;
public int age;
public int sex;
// 创建Human的三个方法,cry、laugh、PrintBaseMes 加了public,是其作为方法作为公共的属性被访问和调用
public void cry(){
System.out.println("我在哭!");
}
public void laugh(){
System.out.println("我在笑!");
}
public void PrintBaseMes(){
System.out.println("我的身高是"+height+"cm");
System.out.println("我的年龄是"+age+"岁");
if (this.sex == 0)
System.out.println("我是男性!");
else
System.out.println("我是女性!");
}
package Dog;
import learn_java00.Human;
public class NewObject {
// 新建一个类。在这个类中新建一个对象Li,它被分类为Human
// 因为在不同的包中,所以在class Human中做了属性和方法的声明,因此可以访问
// 输入参数即可打印出Li同学的基本信息
public static void main(String[] args) {
Human Li = new Human();
Li.cry();
Li.height = 180;
Li.age = 27;
Li.sex = 0;
Li.PrintBaseMes();
}
}
changelog
- 191121-增加类的例子
- 191120 内容在下面
---------------------分割线-----------------------
- 学习的过程和收获
>1 字符和字符串
>2 运算符
>> 基本运算(加减乘除 取余 自增 自减)->位运算->逻辑运算->运算优先级
>> 数组->数组初始化->多维数组 + 冒泡排序
>3 控制流程
>> 判断->if->if……else>if……else if>if 的嵌套 + switch……case语句
>> 循环->do...while->while->for循环嵌套 ->continue 和 break语句
> 面向对象的基础中的类
> >类的定义->类的方法->类的属性->创建类和对象
>4 学习的方法
>> 可以翻到本日报的最底层进行查看
---------------------分割线-----------------------
遇到的问题
1 修饰没有搞清楚,需要再次整理和归纳
default public private protected 要归纳一下
default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
public : 对所有类可见。使用对象:类、接口、变量、方法
protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。
2 this问题
这个问题暂时还未解决,今天就会搞明白
3 昨天早上写冒泡写了很久,都是一些小细节上的问题
// 数组遍历
public class Dog{
public static void main(String[] args) {
// 冒泡排序
int[] ns = { 28, 12, 89, 73, 65, 18, 96, 50, 8, 36 };
for (int i = 0; i < ns.length-1; i++) { //
for (int j = 0; j < ns.length - i - 1; j++) {
if (ns[j] > ns[j+1]) { // 第一个数比第二个数大的时候,就把第一个数和第二个数对换位置,因此小的排在前面
// 把na[j]和na[j+1]的数值对换位置,类似于把两个杯子里的水换过来,这个时候需要借助第3个空杯子tep。
int tep = ns[j];
ns[j] = ns[j+1];
ns[j+1] = tep;
}
}
}
// for循环 遍历输出数组
for(int t = 0; t < ns.length; t++){
System.out.print(ns[t]);
System.out.print(',');}
}
}
比如length - 1的问题,这个主意在于数组的下标从0开始计算,而人类计算长度从1开始,所以才需要减去1。
第一层实现遍历,第二层实现数的对比
其次是for循环嵌套的第二层,j<na.length-i-1,这个是为什么?这里需要问问
---------------------分割线-----------------------
今日计划和目标——学完下图这5个,并且给出高标准的日报
参考教程
--------------------------------------分割线-------------------------------------------
题外话:总结和应用一下学习方法
学习方法:
学习不是记忆,信息不是知识来源和参考:
- Yjango《学习观》
- 汤质看本质:《这才是学习的底层原理》- MIT大学公开课:《Learn How to learn(学习如何学习)》我在学习的过程中要意识的去使用那些被验证了的学习方法,并且最终通过学习难度曲线陡峭的编程,构建自己的self-teachf方法。所以,这次学习,对我而言,不仅仅是编程而已。
明确输入和输出-将信息压缩成知识-用该例子重塑大脑连接-用二阶知识分解学习 用这四个来设计思维导图。
明确输入和输出
把握输入和输出
输入庞杂的信息
输出知识网络(所谓知识网络就是从事物的概念到定义-关系-结构-功能-作用 的理清楚)
将信息压缩成知识
是什么+为什么是 进行 归类
目的是什么+作用是什么+ 怎么达成是 回归
用多个例子来来让大脑重构
1 多个不同的例子,反复让大脑认知,多个指的是3个或者以上
2 费曼技巧——以教为学
1 找到你想学习的关键词/例子/内容并且进行理解
2 想象你把它教给一个什么都不懂的人听
3 如果你发现你确认教会他了,那么你学会了,否则返回到第一步
用二阶知识来分解学习
1 难作于易,大作于细,舍弃一步到位的冲动,通过分解的动作,逐步的把大问题化解成可以解决的问题。
2 用费曼技巧理解(熟练的应用)后,再反向拆分,把知识组合回去(熟练后),那么你就能自如的应用已经学到的知识,这个过程可能会比较慢,并且会有一些不舒服,不过没太大关系,这个证明你是在向提升的方向进行着。
3 对标构建反馈,进行调整和改进
--------------------------------------分割线--以下内容摘自维茨金的《学习之道》-------------------------------
何乐|bemvp.github.io:
我学得很快,并对正在经历的成长过程着了迷。从12岁起,我就一直写周记,记下自己的象棋学习心得,不断观察自己的心理变化,现在,我对太极亦是如此。
何乐|bemvp.github.io:
无独有偶,在推手比赛中,时间仿佛放慢了脚步,让我能一步步分解对手的阵营,发现他的漏洞,这和象棋比赛本质无异。我对于意识、象棋和太极的着迷,对文学与大海、打坐与哲学的热爱,所有这些都紧紧围绕着一个主题:完全融入某项活动,挖掘自己思维的潜能。我的成长过程逐渐被定义成了“畅通无阻”。
何乐|bemvp.github.io:
在我努力做到更准确地理解自己的学习过程的同时,我需要不断回顾自己走过的路,并要记住哪些我已融会贯通,哪些已经遗忘。在我的象棋与武术生涯中,学习方法对我的成长至关重要。我有时将其归纳为“以数字摆脱数字”,“以形式摆脱形式”。这一过程的一个基本范例可以通过象棋轻松地展示出来:象棋学习者必须先要专心学习基础知识,然后有望获取高级技能。他会学习残局、中局、开局的种种原则。刚开始他会同时考虑一两个关键性主题,但慢慢地,直觉会学着把更多的原理结合起来,融入自己的潜意识中。最终,这种基础已深深扎根,无须去特意思考,但潜意识里却会这么去做。这个过程会往复循环,并不断吸收深层次的习得。
何乐|bemvp.github.io:
当我走错了一步,布鲁斯就会问我是怎么想的,之后帮我找到不同的解决方式。课上大多数时间都是在沉默中度过的,两个人都在思考。布鲁斯不想给我灌输过多信息,而是帮助我的思维逐步走向成熟。慢慢地,通过他劝诱式、幽默、轻描淡写的教学方法,布鲁斯为我打下了根本性的象棋理念根基以及对于分析、计算的系统化理解。尽管这些新知识非常宝贵,但最初几个月的学习中,最重要的一点就是,布鲁斯进一步加深了我对象棋的热爱,并且从未让技术性的东西影响了我对象棋的内在感觉。
何乐|bemvp.github.io:
在夏天那几个月里,我曾质疑过很多事,在决定强势回归时,我对象棋所做的承诺已远远超出了乐趣与荣誉,而是热爱、苦痛与激情,激励自己不断跨越,不断提升。这听起来好像有点荒谬,但我相信从8岁到9岁那一年是我生命中的转折点。我用辛勤的练习来应对比赛的挫败与心灰意冷。我不断激励着自己,并为强大的意志力所驱动着。小时候我就潜力无限。
何乐|bemvp.github.io:
在我象棋生涯的最后几年里,我已经变得很麻木,感觉与象棋越来越疏远。我的脑子一片混乱,止步不前,就像是那些练习推手时不研究学习所犯错误的人一样,只是一味想取胜的人,想做得完善,想把所有事情都置于自己的掌控之下。这样一来就会阻碍成长,使得太极看起来和平庸的生活没什么两样。在刚开始学习太极的几年中,我的任务是广泛接收各种信息。我尽全力从每个错误中吸取经验,不管是我自己的还是训练同伴的。每次推手课都是一次领悟,几个月后我已经可以对付大部分学习了几年太极的人了。
何乐|bemvp.github.io:
划小圈
学习的基本原则就是要钻研微观的细节事物从而来理解是什么促成了这些宏观上的问题。
何乐|bemvp.github.io:
这个“划小圈”的概念是我学习象棋和武术过程中的一个重要组成部分。
在象棋和武术中,选手会倾向于使用各种花哨的技巧而忽视细微的吸收和完善,其实它们要比学到的招式数量重要得多。我想就是因为有了这种理解我才能在2000年11月赢得了人生的第一个推手全国锦标赛冠军,当时我才学了两年太极。
何乐|bemvp.github.io:
我们能成为顶尖选手并没有什么秘诀,而是对可能是基本技能的东西有更深的理解。每天都要学得更深一点而不是更广一点,因为学得更深可以让把我们潜力中那些看不到、感受不到但又极具创造力的部分挖掘出来。
何乐|bemvp.github.io:
在“软区域”那章里,我介绍过一个能随机应变的表演者在混乱的情况下要做到处事不惊有三个重要步骤。第一,我们要学会平静对待生活中的不完美之处。我介绍过树叶在飓风中摇摆和枯脆的树枝在重压下折断的情景。第二,在我们的表演训练中,我们学习如何把不完美之处转换成我们的优势——举个例子,想着音乐的节奏或是利用一个左摇右摆的世界来作为锻炼洞察力的催化剂。而这个步骤的第三步隶属于表演心理学,就是学习如何在我们的意识中制造一些起伏和小的波动来激励我们前进,所以我们要一直激励自己,不管外部条件是否有激励性。
何乐|bemvp.github.io:
我右手的恢复还有一个很有趣的过程。我想要参加国家比赛,我下定决心不让我的手有任何的萎缩。在我生命中的这个时刻,通过太极冥想我已经融入到身体的各种细微的内在技能之中了。我试图通过高强度的视觉训练来让我身体的右半部分保持强壮。我的方法如下:每天我用身体的左半部分来进行抵抗练习,而每次我就看着这些练习透过肌肉传递到我身体的右半部分。我的手臂还打着石膏,所以右手根本不可能做动作——但我却能感觉到一股能量流入了右手的肌肉之中。虽然只是一种臆想,但却确实起到了作用。我全身都感到强壮无比。医生拆掉我的石膏时惊讶万分,国家比赛前四天的X光检查显示我的骨头已经完全愈合了,而且肌肉没有出现任何萎缩现象。
何乐|bemvp.github.io:
作为一名选手我学到了一件事情,那就是在什么能够使人表现得还不错、什么使人表现得很好、什么使人表现得优秀和什么使人表现得卓越这四者之间存在着很大的差别。如果你的目标只是做到中等,那你出错的空间就会很大。一旦失业你就会心情低落,意气消沉地等着别人打电话来给你一个工作的机会。如果你弄伤了你的脚趾,你就会花上六个星期的时间来看电视,吃薯片。在这种思维模式下,大多数人都认为受伤就是挫折,他们需要时间从中恢复过来或是花时间去应对伤势。对外界的粉丝或是观察家来说,运动员受伤就是在受苦,在比赛和坐冷板凳之间犹豫不决。在我的武术生涯中,我每次身体受伤,像我母亲那样的好心人就会建议我先停止几个星期不要参加训练。但他们没有意识到的是如果我一受伤就停止训练,那我就得坐一整年的冷板凳了。
何乐|bemvp.github.io:
基本上,我总会在受伤的第二天就会回到训练场,想着如何利用这种新情况来提高我某些方面的技能。如果我想做到最好,那我就不得不冒别人想避免的险,不得不经常充分挖掘当时的学习潜力,逆转困境为我所用。不过有的时候身体确实需要时间进行恢复,但这些正是完善我武术学习的思维、技术及内在方面的最好机会。当你想要做到最好时,你需要一种全神贯注并善于搜寻的思维模式。你需要利用阻碍来刺激你在学习过程中创造新的视角,让挫折来磨炼你的意志。比起屈服于这些挫折,你应该更好地应对受伤或是失败。我们太容易被我们的日常生活方式所桎梏,从而在学习过程中失去创造性。
何乐|bemvp.github.io:
即使那些一心一意想培养出某种原则的人都经常会落入一个思维定律和一种闲散的生活方式,被暗示经过这些事物就会追求到卓越。我们失去了风采。于是一旦受伤或是遇到一些别的挫折就会阻碍我们的发展。我们被逼着进行创新。
何乐|bemvp.github.io:
最终,我们应该学习如何在不用受伤的情况下也能吸取这种经历的教训:一个篮球运动员应该练几个月的左手技能来平衡在运动中的表现。一个喜欢用右脚的足球运动员不应该一直只用右脚射门。一旦我们学会了如何把困境转化为优势,我们就可以制造有用的成长机会而又不至于带来真正的危险或伤害。我称这种工具为“内在解决措施”——我们能够注意到那些促成有用的成长或是带来表现机会的外部事件,即使这些事情没有真实发生,我们也可以吸收这些事件的成果。这样一来,困境就变成了激励创造性的一个无穷的源泉。
何乐|bemvp.github.io:
一旦我们在某个问题上知识广博起来,那关键问题就变成了:应该如何引导并使用这些信息?我相信这个问题的答案就是通向精英最核心层面的门户。
何乐|bemvp.github.io:
我对如何做到熟练的看法——首先从基础开始,通过理解训练的原则所在来建立扎实的基础,然后在你个人倾向的指导下拓宽并完善自己的技能,同时和你认为是艺术的必要实质的东西在抽象层面上保持联系。结果就是你可以更好地吸收各种知识,使得这些从个人的着重点中拓展开来的知识相互连接成一个网络。
何乐|bemvp.github.io:
进行这种讨论的最佳方式就是使用“组块”和“嵌入的神经中枢路径”的方法。和组块有关的是思维吸收大量信息形成一个信息群的能力,这个信息群是通过某个训练的特定形式或原则凝聚到一起的。
何乐|bemvp.github.io:
最精深的技巧往往建立在最简单原始的原理之上。
何乐|bemvp.github.io:
在你的表现训练里,掌握这个领域的第一步就是要练习面对和释放压力两者间的此消彼长。这可能会涉及我前面说过的间歇性训练,什么样的难度对每个不同的年龄,身体状况是合适的。这种训练,当然,可以有多种形式:我已经说过自行车和阻力练习,但如果你喜欢在游泳池里循环游泳,你不必一直游到筋疲力尽,然后退场,你应该把自己推向体力的极限,然后休息一两分钟,之后再继续把自己向前推进。就像我在自行车训练中描述的那样,制定一个有规律的休息间隔。随着你的练习,增加你运动的强度和持续时间,慢慢压缩休息的时间,你就步入正轨了!相同的方法可以运用于慢跑、举重、武术训练或是其他任何体育项目。
何乐|bemvp.github.io:
要成为一个细水长流、有长足发展的表现者,间断性工作起着举足轻重作用。如果你在日常生活中花几个月来练习面对和释放压力,那么你会成为一个临危不惧、活力四射、为人所信赖的选手,下一步就是激发你的最佳状态。
何乐|bemvp.github.io:
我们不是生活在好莱坞式的电影剧本之中,高潮不会随我们的意愿出现。通常情况下,我们生活中的高潮时刻是跟随在非高潮的、正常的和单调的许多时时刻刻、日日夜夜、岁岁年年。那么当我们人生的高潮时刻突然来临时,我们该如何阔步上前,勇敢面对呢?我的回答是重新定义问题。我们不仅必须善于等待,还必要享受等待。因为等待不仅仅是等待,它还是生活。我们中的许多人生活着,却没有全心投入。当我们真实的生活开始时,却一味等待。在无聊中打发日子,但这也没关系。因为当真爱来临或我们发现来自心灵深处的呼唤时,我们便开始自己真正的生活。当然令人悲哀的事实无外乎如果我们没有意识到那一刻,即使真爱来了又走,我们仍然没有察觉。我们因此也就成了另外一个人,而非拥抱那个时刻的你或我。我崇尚简单。深入到平凡之中,发现隐藏于生活之中的丰富才是成功还有幸福的所在。
何乐|bemvp.github.io:
它的原理是在固定修炼与在它之后发生的活动之间建立一种心理联系。丹尼斯在和儿子玩球时总是全神贯注,所以我们必须做的便是建立一套固定修炼,使它与那种精神状态联系在一起(显然,让丹尼斯无论走到哪里都带着儿子不切实际)。一旦这套固定修炼被内化,它就可以被用于任何活动之前,一种相似的心理状态也将出现。我还要强调的是你个人的固定修炼应该由你的个人品位决定。
何乐|bemvp.github.io:
愤怒。恐惧。绝望。兴奋。幸福。失望。希望。情绪是我们生活的一部分。否认人类经历中如此重要的组成部分,只会让我们成为傻瓜。但是,当我们完全被情绪驾驭的时候,事情会变得糟糕。如果恐惧把我们撕成了碎片,我们可能在非常危险的环境中无法有效应对。如果我们因他人的刺激而变得暴怒,就可能会做出令自己后悔的决定。如果我们因情况好转而沾沾自喜,也许就会犯下让状况急转直下的错误。
何乐|bemvp.github.io:
●学习从热情出发天才不是与生俱来的,是建立在热爱、激情、寻找适合自己的学习方法的基础上的。追求卓越的关键在于,要坚持充满活力、长期的学习过程,不再满足于原地踏步、平平庸庸。
●先学会输,才有机会赢失败的经验比胜利更有价值。学习过程总有挫折,每个人都应该找到让自己疗伤充电、重新出发的方式。每次从创伤中痊愈或从一场败战中走出来时,都要让自己比之前更好。
●让我们攀上高峰的不是奇招,而是熟能生巧的基本功在学习过程中,深度甚于广度,质胜于量。所有的绝妙创意或“神来之笔”,莫不是以扎实的技术为根基的。
评论