Loading...
KeepCoding avatar KeepCoding 554 Точки

Живот на променлива { Variable scope }

Здравейте колеги.
Въпросът ми е какво е предимството от това една променлива да бъде инициализирана в тялото на цикъл? Като се инициализира в цикъл, не трябва ли на всяка итерация да се запазва и освобождава памет, което предполагам забавя програмата? Ето един пример: Задачата е Magic Numbers. Тук променливата "о" е в най-вътрешния цикъл и отговаря за последната цифра на 6-цифрено число. Животът й започва и завършва с всяка итерация на променливата "m", която пък по същия начин зависи от предния итератор "l" и така до "i". Не би ли било по-добре всички итератори да се декларират предварително, за да няма нужда от хиляди запазвания и освобождавания на памет? Ако ставаше въпрос за променлива, която не е примитивен тип данни? Също така искам да попитам дали има начин да виждам колко памет и време е било израсходвано при екзекуция на код, за да няма нужда да питам подобни въпроси в бъдеще.

        Scanner console = new Scanner(System.in);

        int n = Integer.parseInt(console.nextLine());
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= 9; j++) {
                for (int k = 1; k <= 9; k++) {
                    for (int l = 1; l <= 9; l++) {
                        for (int m = 1; m <= 9; m++) {
                            for (int o = 1; o <= 9; o++) {
                                if (i * j * k * l * m * o == n) {
                                    System.out.printf("%d%d%d%d%d%d ", i, j, k, l, m, o);
                                }
                            }
                        }
                    }
                }
            }
        }

 

2
Programming Basics
Aguzelov avatar Aguzelov 78 Точки

Прочети тука: https://www.quora.com/Is-it-a-good-practice-to-initialize-variables-when-they-are-declared-like-int-num-0-If-so-why

Аз следвам тези правила при инициализациата на променлива:

Първо, променливата я дефинирам само тогава когато е необходима. Ако х е дефинирана в началото на блока, не се знае за какво ще се използва докато не се прегледа целия блок.

Второ, дефинирането на променлива там където е нужна ми показва, че тя не засяга нищо над нея.

И накрая, това намалява вероятността от неволно оставяне на променлива неинициализирана, защото можем да я дефинираме и веднага да я инициализираме със стойността, която искаме да има.

https://docs.oracle.com/javase/7/docs/technotes/guides/management/jconsole.html

 

2
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.